Vue $attr

笔记2024-04-252 人已阅来源:网络

$attr是Vue.js中的一个实例属性,用于访问组件的父级属性。在Vue.js中,每个组件都会有一个自己的作用域,当在组件中使用props属性时,只能访问父级传过来的属性,而不能直接访问父级的任意属性。这就是为什么Vue.js提供了一个$attr属性,用于访问父级组件的所有属性。

下面是一个示例代码,说明如何使用$attr属性:

Vue.component('child-component', {
template: '
Child Component
', created() { console.log(this.$attrs); } }); Vue.component('parent-component', { template: '
' });

在上面的代码中,我们定义了一个父级组件和一个子级组件。我们在父组件中使用了子组件,并传入了一个属性message。在子组件的created钩子函数中,我们输出了this.$attrs,并且可以看到输出结果中包含了我们在父组件中传入的属性。

在使用$attr属性时,需要注意一下几点:

  • $attrs只会包含父级组件传入的非props属性。
  • 如果子组件存在一个与$attrs中的属性同名的props,则这个属性的值会被props中的值所覆盖。
  • 如果在子组件中传入了props属性,那么在子组件中访问$attrs属性的时候,只会包含$attrs中未被定义为props的属性。

总之,$attrs是一个非常有用的Vue.js实例属性,可以帮助我们访问父级组件中的所有属性,并在子组件中使用。