优艾设计网

Vue.js的平行组件之间如何互相通信??

优艾设计网 https://www.uibq.com 2023-05-16 07:48 出处:网络 作者:磨皮美容教程
目前在项目中有这么两个平行的vue.js组件, 都挂载在$el:document.body下:hall和detail现在的情况是, detail中的某个值改变了, 需要在hall中的某个值也作出相应的改变。 本来是想做父子组件的, 但项目框架如此,

目前在项目中有这么两个平行的vue.js组件, 都挂载在$el:document.body下:halldetail
现在的情况是, detail中的某个值改变了, 需要在hall中的某个值也作出相应的改变。 本来是想做父子组件的, 但项目框架如此, 改还要牵扯到优艾设计网_设计很多, 暂缓了。
我们知道vue.js中组件树的通信是比较方便的: 子组件可以通过v-bindprop来从父组件继承值并双向绑定, 而子组件也可以通过$dispatch方法来向父组件发送信息
那么这种平行的子组件之间, 有没有什么好的通信方法呢?
现在的临时解决方案就是:收到ajax的返回信息之后, 在回调函数中这样写:

this.$parent.$children[0].$data.somedata = somavalue

但这样的写法让我很不安, 且不说那个强耦合$children[0], 实现也不甚优雅
有没有什么好的办法呢?求解!
更加令人蛋伤的是项目用的是0.12版本+browserify进行组件打包, 1.0的高级特性不敢乱用……


_WeCh****16662 16小时前

优艾设计网_PS论坛

我在这篇使用Vue.js和Vuex实现购物车场景文章解释了。两个组件的之间的沟通渠道相对麻烦,vuex可以解决这一问题。


ty_136527048 16小时前

优艾设计网_平面设计

应该可以通过Vuex解决。


19840304 优艾设计网_平面设计 15小时前

4.vuex


躲不开的心疼 15小时前

优艾设计网_Photoshop交流

要是我,就$parent.$broadcast。本身是局部的属性,放在vuex太累了。就用最简单的办法,实现通信就好。


爱塔塔999 15小时前

如果通过$dispatch和$broadcast来解决的话,可以dispatch到根组件,然后在broadcast到子组件。

优艾设计网_PS交流


360U3193472653 15小时前

把事件冒到两个节点的公共祖先上传递信息

优艾设计网_设计百科
0

精彩评论

暂无评论...
验证码 换一张
取 消