前端框架VUE—父子组件访问方式

有时候我们需要父组件直接访问子组件 或 子组件直接访问父组件。前端

一、框架父访问子

父访问子组件通常有两种方法:一种是父访问方式使用 $childre,另一种是组件使用$ref属性。

1、前端$children

//父组件中打印 mounted(){   console.log( this.$children ); } 

返回的框架结果是一个数组,由于该文件只有一个组件,父访问方式所以返回是组件长度为1 的数组。

this.$children[0].data //返回子组件的前端数据 this.$children[0].showMethods() //调用子组件的showMethods方法 this.$children[0].$el //子组件的根元素 ... 

如果不包含子组件时,默认返回空数组。框架

2、父访问方式$refs

如果 ref 是组件加在普通元素上,this.$refs.name获取到的前端是dom值。

如果 ref 加在组件上,框架this.$refs.name 获取到的父访问方式是云服务器组件实例,可以使用组件的所有方法。

ref 使用实例如下:

//子组件调用 <cld ref="cld"></cld> <cld ref="cxd"></cld> //打印  console.log(this.$refs); 

打印结果如图:

this.$refs 返回是一个对象,如需要获取第一个子组件时,可以使用:

this.$refs.cld this.$refs.cld.data //子组件的数据 this.$refs.cld.showMethods() //调用子组件的方法 

如果组件中没有 ref 属性时,默认是一个空的对象。

3、$children VS $refs

children 返回的是数组,而 refs 返回的是对象类型。

使用children获取子组件件时,易受到其他组件干扰,较容易出错,所以children 很少使用。经常使用 $ref 获取子组件。

二、子访问父

子组件访问父组件时使用 $parent 。

this.$parent 

返回的高防服务器是一个对象。一般开发中很少使用,因为子组件拿父组件的数据,会导致两个组件的耦合度过高,当子组件是一个公共组件,哪里都可以引入使用时,这时其它地方引入这个子组件时就会出问题。

vue 开发的项目最大特点就是,开发出一个一个独立的可复用的小组件,来构建大型应用。所以 $parent 基本不使用。

三、访问根组件

访问跟组件使用 $root 。

this.$root 

返回的是 vue 的实例化对象。

this.$root.$el //根元素 this.$root.data //vue实例中数据 
滇ICP备2023000592号-31