Vue 学习笔记之–组件通信
1.基本的props传递
vue可以像react一样使用props为子组件传递数据,来实现最基本的父组件向子组件间进行通信。
使用方式
|
|
- 父组件传递数据
|
|
设置数据绑定类型
- props默认的传递及绑定方式为 父级 -> 子级 ,当父级属性改变时,会默认的传递到子级。为了防止子组件无意中改变父组件的属性,父级属性不会随props改变而变化。
- 想要强制双向绑定,可以使用如下:
|
|
引用类型传递
如果props传递的对象类型为一个对象或者数组,为引用类型传递,子组件的修改都会影响到父级状态!
prop验证,设默
|
|
2. slot内容分发
当我们想要对组件内部动态添加内容时,则需要使用slot进行内容分发。类似react的props.children,如下所示
子组件:
|
|
父组件:
|
|
结果:
|
|
3.自定义事件
vue提供了以下几种方式来进行组件间的通信:
- $on() 监听事件
- $emit() 触发事件
- $dispatch() 派发事件,触发父链组件的某事件
- $broadcast() 广播事件,触发所有后代的某事件
Vue 事件在冒泡过程中第一次触发回调之后自动停止冒泡,除非回调明确返回 true
例子:
|
|
3.子组件索引
可以通过$refs直接引用子组件实例,如:
|
|