vue组件中的数据共享

1.父组件向子组件中传送数据

方法:使用自定义属性,即在子组件中利用props接收父组件中利用自定义属性传过来的值

在这里请注意 需要用v-bind绑定自定义属性进行传值,否者传过来的是字符串。

 <Left :mes="message" :ages="age"></Left>

上述代码如果mes不绑定的话 子组件收到的就是“message”这个字符串

2.子组件向父组件传送数据

方法:使用自定义函数,即在子组件中用$emit进行触发自定义函数this.$emit("自定义事件名",要传输的数据);父组件中绑定这个自定义事件名 @自定义事件名=“处理函数";这个处理函数的参数就是传输过来的数据了。

3.兄弟之间数据共享

方法:利用eventBus共享

<1>创建eventBus.js,创建vue实例

<2>发送方:引入eventBus,利用bus.$emit("触发名",数据)发送数据

<3>接收方:引入eventBus,利用bus.$on("触发名",处理函数)接收函数,注意这个操作要写create中

//eventBus.js
import Vue from "vue"
export default new Vue()

注意:为啥要使用eventBus,他在这里相当于一个桥梁,沟通两个组件,并且他没有dom组件,只是实例化;为什么bus.$emit,bus.$on使用bus而不是this呢?

this这里只想当前组件的实例化,是两个独立的个体,不能触发相同事件。

 

posted @ 2021-08-23 16:56  冰镇汽水  阅读(189)  评论(0)    收藏  举报