- 子组件接收父组件传递过来的内容,要通过 props 来接收父组件的数据
父组件向子组件传递数据
{{pmsg}}
二、静态数据传递
三、动态数据传递
四、短横线绑定
五、数组传递
六、对象传递
2.2 子组件向父组件传递数据
子组件向父组件传值
props 传递数据原则,单向数据流
-
子组件通过自定义事件向父组件传递信息 $emit 向父组件传递数据
-
父组件监听子组件的事件
接下来我们以一个改变字体大小 以及 传递数组的实例来给给大家演示子组件向父最贱传递数据的流程
<menu-item :parr=“parr” @enlarge-text=“handle”>
2.3 子组件通过自定义事件向父组件传递信息
基本和上面一致
子组件传递的数据,在父组件中要通过 $event 来接收数据
<menu-item :parr=“parr” @enlarge-text=“handle($event)”>
2.4 非父子组件间传值 (兄弟组件之间数据交互)
通过事件中心完成交互
使用方式:
-
单独创建一个 Vue 实例
-
然后处理事件的监听 和 销毁
// 单独创建时间中心管理组件间的通信
var eventHub = new Vue();
// 监听事件和销毁事件
eventHub.$on(‘add-todo’,addTodo); // 自定义事件名称 事件函数
eventHub.$off(‘add-tod’);
// 触发事件
eventHub.$emit(‘add-todo’,id);
示例
<button @click=“handle”>点击
2.5 组件插槽
-
父组件向子组件传递模板内容
-
子组件通过插槽 slot 显示父组件中模板的数据
slot 是 vue 提供的 API,使用 slot 在子组件,我们可以在模板中插入我们想要的数据,我们还可以在 slot 中添加默认的数据
我没有通过 slot,我进不来
我通过 slot 插入进来了
2.6 具名插槽
在一个组件中,我们可以指定多个插槽插入数据,但是为了区分这些数据,我们会设置一个 name 值来标识唯一的插槽
标题信息
我是主要内容
我是主要内容
底部信息
标题信息1
标题信息2
我是主要内容
我是主要内容
底部信息1
底部信息2
2.7 作用域插槽
应用场景: 父组件对子组件的内容进行加工处理。
使用方式:
-
在子组件中设置 slot,并自定义一个属性,接收父组件的内容
-
父组件创建 template,通过设置 slot-scope 就可以接收到子组件的内容
-
然后得到数据,就可以对数据进行显示了。