父子通信
父组件传值给子组件
在父组件中,在引用子组件的标签上,通过属性传值给子组件
在子组件中,通过
props
接收父组件传来的值,props
是一个数组,数组里的值要用字符串包裹(也可以是对象)子组件就可以直接使用父组件传来的值了
子组件与父组件通信
子组件使用
$emit
触发父组件中的事件vm.$emit( eventName, […args] )
附加参数都会传给监听回调父组件中,在引用子组件的标签上监听子组件
$emit
的事件
- HTML代码
1 | <body> |
- JS代码
1 | Vue.component('child', { |
爷孙通信
爷孙不能直接通信,要经由中间的父组件通信
下面代码示例中,点击爷爷的“打开”button,爷爷改变
visible
的值并传给父亲,父亲再根据这个值控制孙子显示,这样就实现了爷爷对孙子显示的控制点击孙子的“关闭”button,孙子触发父亲的
frandsonClose
事件,进而触发爷爷的close
事件,实现的孙子对爷爷的通信
1 | // 父组件html(这是爷爷) |
1 | // 子组件(这是父亲) |