为了账号安全,请及时绑定邮箱和手机立即绑定

vue两个子组件之间如何不用vuex进行简单的通信?

vue两个子组件之间如何不用vuex进行简单的通信?

湖上湖 2019-02-19 14:12:24
简单来说,就是一个子组件通过$emit来传一个object到父组件,但是父组件接收不到参数 比如一个简单的单页面应用,app.vue 文件里面通过 vue-router 引入了 a组件 和 b组件代码大概如下<div class='app'>    <div class='nav'>        <router-link to='/a'>前往a页面</router-link>        <router-link to='/b'>前往b页面</router-link>    </div>    <div class='content'>        <router-view></router-view>    </div>    </div>    然后,现在点击 a组件 里面的一个按钮之后,把一个对象传到 b组件 (不用vuex)我的想法就是,点击了a组件的button之后,this.$emit一个事件,然后把对象做为参数,一起传到app.vue , 然后在app.vue 通过监听事件获取到 a组件 传来的事件和参数然后 我试了一下在分别在app.vue的 .content 和 router-view 用v-on 来接收事件发现在router-view能够成功接收到a组件传来的事件然后试着console一下接收到的参数发现输出undefined代码大概如下:希望各位大佬指教一下,很简单的问题但是搞了好久appreciate。
查看完整描述

1 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

你干脆安装一个vue-bus插件吧


npm install vue-bus

入口文件引入一下


import Vue from 'vue';

import VueBus from 'vue-bus';


Vue.use(VueBus);

A组件:


this.$bus.emit('myEvent', 'hello'); // 触发自定义事件传递数据

B组件:


this.$bus.on('myEvent', (myData) => {

    console.log(myData); // hello

}); 


查看完整回答
反对 回复 2019-02-21
  • 1 回答
  • 0 关注
  • 535 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号