- ref 着重于索引,主要用来
调用子组件里的属性和方法
,其实并不擅长数据传递。而且ref用在dom元素的时候,能使到选择器的作用。 - prop 着重于
数据的传递
。
对于ref官方的解释是:ref 是被用来给元素
或子组件注册引用信息
的。引用信息将会注册在父组件的 $refs 对象上。
看不懂对吧?正常:
如果ref用在子组件上,指向的是组件实例,可以理解为对子组件的索引,通过$ref可能获取到在子组件里定义的属性和方法。
如果ref在普通的 DOM 元素上使用,引用指向的就是 DOM 元素,通过$ref可能获取到该DOM 的属性集合,轻松访问到DOM元素,作用与JQ选择器类似。
那如何通过ref实现通信?下面就是父组件调用子组件方法的示例:
<el-button type="primary" @click="handleSave('AddDownDomain')">{{ $t('save') }}</el-button>
methods:{
handleSave (components, callback) {
// 这下面调用的submit方法就是调用的子组件的,在本组件里面找不到
this.$refs[components].submit(this.$refs.table, () => {
this.loading = false
})
}
}