vue 8种组件的通信方式
vue组件8种通讯:
props
$emit/$on
$children/$parent
$attrs/$listeners
ref
$root
eventbus
vuex
c h i l d r e n / children/ children/parent
this.$parent.xxxx()//找爸爸
this.$children.xxxx()//找儿子
这两个比较容易且常用!
使用ref特性
ref有点身份证的感觉,直接通过身份证查询对应的实例
this.$refs.childComponent //这个是身份证为childComponent
this.$refs.childComponent.msg //这个实例下的msg参数
也常用
Vuex 状态管理
这个属于仓库了。相当于往仓库放东西,其他页面想用这个东西就自己去仓库里面拿就可以了!
e m i t / emit/ emit/on
这个就有趣了。通过一个util.js做中转站(里面没东西的)
完全没亲属关系的组件间,直接沟通
//公共方法中转站。
import Utils from './common/util.js';
// 中转站方法调用
Utils.$on('getMailCloudNormal', function () {
that.getMailCloudNormal();
})
Utils.$on('reload', function () {
that.reload();
})
使用:直接调用,陌生组件直接沟通,贼方便!!!
其他组件,想用上面的话!
Utils.$emit('getMailCloudNormal');