使用vuex。见官方文档
或者简单的发布订阅
在你根页面上 window.eventBus=new Vue();
子组件1/2. window.eventBus.on(...) window.eventBus.emit(...)
感谢回复;
我使用你说的第二种方法;在组件2发生点击事件的时候用window.eventBus.emit('user',{updateUser:true});
在组件1中用window.eventBus.on('user',function (msg) {
if (msg.updateUser === true) {
//这里调用数据请求的方法
}
});
我不太清楚这个on方法写在哪儿?我试过写在data的return上面;以及create方法里面;
可是都不管用
@流年之外天空蓝:
on 是订阅。 写在 你子组件1的created(){}里面
@流年之外天空蓝:
on 是订阅。 写在 你子组件1的created(){}里面
@calvinK: 好的;谢谢,我试试哈
例举三种做法如下:
1、通过EventBus发通知;
2、通过Vuex共享数据;
3、通过共同的祖先来传递数据
思路如上,仅供参考。
好的,谢谢大神回复啊;我试一试
题主的问题是设计不好,建议采用天芒说的第三种方法,就不需要EventBus或者vuex这么复杂的东西了。
一种数据统一在一个地方管理。
大叔你好;感谢回复;
那这样的需求怎么设计会比较合理一些呢?求告知
@流年之外天空蓝: 就是通过共同的祖先来传递数据啊。
列表无需取数据,窗体也无需保存数据,把这些事情都交给别人去做。
你可以看看
Vue.JS 单页应用 - 联系人管理(一) 这个系列文章
就是使用这种方法的。
@爱编程的大叔: 好的,谢谢大叔..