前端流行框架Vue3教程:18. _组件数据传递

透传 Attributes

透传attribute指的是传递给一个组件,却没有被该组件声明为propsemitsattribute或者v-on事件监听器。最常见的例子就是class、style和id
当一个组件以单个元素为根作渲染时,透传的attribute会自动被添加到根元素上


透传 Attributes 是 Vue 的一个特性,允许父组件传递任意属性到子组件上,而无需显式声明。这在封装可复用的组件时非常有用。

步骤 1: 创建子组件

创建一个名为 AttrComponents.vue 的子组件,并定义一个模板部分:

<template>
	<!--  必须是唯一元素  如果多了其他元素 就不生效  比如<p><h2>等-->
  <h3>透传属性</h3>
</template>

这个组件没有显式声明任何 props 或其他属性处理逻辑。

步骤 2: 在父组件中使用子组件

在你的主组件 App.vue中导入并注册子组件 AttrComponents

<script>
import AttrComponents from "./components/AttrComponents.vue"

export default {
  components: {
    AttrComponents
  }
}
</script>

<template>
  <AttrComponents class="attr-container"/>
</template>

<style>
.attr-container {
  color: red;
}
</style>

在这个例子中,我们通过 class="attr-container" 将样式类传递给子组件。

步骤 3: 使用透传的属性

当子组件接收到这些属性时,它们会自动应用到子组件的根元素上。在上面的例子中,class="attr-container" 被应用到了 <h3> 元素上,因此 <h3> 的文字颜色将会是红色。
在这里插入图片描述

注意事项
  • 透传的属性会直接绑定到组件的根元素上。

  • 如果你在子组件中需要对属性进行更复杂的处理,可以使用 props显式声明它们。

  • 如果你不希望某些属性被自动绑定,你可以使用inheritAttrs选项来控制。

    <template>
      <!--  必须是唯一元素  如果多了其他元素 就不生效  比如<p><h2>等-->
      <h3>透传属性</h3>
    </template>
    <script> 
    export default {
      inheritAttrs:false
    }
    </script>
    

这样你就完成了一个简单的透传 Attributes 的使用示例。

但这个在实际工作中不常用的,本章只做了解即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值