【发布时间】:2021-05-11 11:21:42
【问题描述】:
我想让两个独立的 Vue 组件相互通信(不是兄弟,所以不是子或父)。
假设我有一个这样的 Laravel 刀片模板文件:
<div id="app">
<div class="header">
<shopping-cart></shopping-cart>
</div>
<div class="content">
<products-list></products-list>
</div>
</div>
如何将产品从一个组件发送到另一个组件(将产品放入购物车)?
【问题讨论】:
-
一种解决方案是使用事件总线在组件之间共享数据:andrejsabrickis.medium.com/…
-
另外,您可以使用localStorage存储数据然后访问它。
-
您可以在没有 Vuex 的情况下自行实现全局状态,但您需要自己维护它并使其与后端或本地存储保持同步。
-
否 - 你可以使用 composition api 来解决同样的问题 - sitepoint.com/…
-
购物车似乎是一个组件,应该可以从任何页面访问。为此使用 Vuex 似乎是适合这些场景的可靠策略。
标签: javascript vue.js vuex