如何在 Vue 3 中正确封装可复用按钮组件(避免非法嵌套与属性丢失)

如何在 Vue 3 中正确封装可复用按钮组件(避免非法嵌套与属性丢失)

本文详解如何通过 `inheritattrs: false` 和 `v-bind=”$attrs”` 将父组件传递的事件(如 `@click`)、指令(如 `:disabled`)和动态 class 正确透传至子组件内部 `

在 Vue 开发中,将按钮抽象为可复用组件是常见需求,但若处理不当,极易陷入「非法嵌套按钮」的陷阱——即在父组件 slot 中再次写

  • 使用默认插槽替代命名插槽:无需 name=”checkAnswer”,简洁的 即可满足内容分发需求,提升组件通用性。
  • 以下是优化后的完整按钮组件(MyButton.vue):

    
    
    

    在父组件中调用时,即可像原生按钮一样直接使用:

    立即学习前端免费学习笔记(深入)”;

    Napkin AI

    Napkin AI

    Napkin AI 可以将您的文本转换为图表、流程图、信息图、思维导图视觉效果,以便快速有效地分享您的想法。

    下载

    
    
    

    ⚠️ 注意事项:

    • v-bind=”$attrs” 必须写在

    https://www.php.cn/faq/1986804.html

    发表回复

    Your email address will not be published. Required fields are marked *