以下示例皆为 vue2
父组件 app.vue
子组件 boxA.vue
我是 A盒子
我有这些属性:
{{ name }}
父组件 app.vue
主应用
子组件 boxA.vue
你好
/*新建一个Vue实例作为中央事件总线*/
let event = new Vue()
/*监听事件*/
event.$on('eventName', (val) => {
//......do something
})
/*触发事件*/
event.$emit('eventName', 'this is a message.')
vuex4.
$attrs
$listeners
有这么一个场景,组件 A 中有组件 B,组件 B 中有 C。AC 之间通信怎么办?
在 vue2.4 版本之后,添加了这么几个属性:
$attrs
$listeners
$attrs
this.$attrs
打印出来;this.$attrs
中。(class 和 style 除外)$listeners
this.$listeners
打印出来;this.$listeners
中,(不含 .native 修饰器的)有什么用?
想象我们的场景:
this.$attrs
和 this.$listeners
拿到数据和事件例如:
父组件 app.vue
子组件 boxA.vue
我是 A盒子
我有这些属性:
{{ name }}
另外说个其他的小 tips
- 没有被 父组件传递给子组件的值,如果没有被 props 接受。 默认会展示在 html 的标签上
可使用
inheritAttrs: false,
隐藏