【发布时间】:2020-01-19 11:52:16
【问题描述】:
我正在 Vue 上构建应用程序,并希望将 Mobx 状态树用作商店管理库。我尝试并最终使某些东西正常工作,但似乎无法正常工作。
首先,我有 Changer 组件通过操作更改存储。完美运行。
第二,我有Test 组件,它试图通过传递的道具对商店更改做出反应。只有当我通过方法返回道具时才能正常工作。
第三,我有BlindTest 组件,它试图通过this.$store 本身和state 道具对商店更改做出反应。只有当我通过函数提供不可变快照作为state 时才能正常工作。
这是不正确且奇怪的行为。组件仅在 props 更改时更新,而不是在 state 更改时更新。为什么?
我还使用来自官方mobxjs 存储库的mobx-vue 库来绑定mobx 和vue。
有带有演示应用程序的沙盒:https://codesandbox.io/embed/vue-template-ouq7r
有没有办法正确连接 MST 和 Vue?
【问题讨论】:
-
但是为什么?.. Vue 没有自己的方式吗?
-
我们应该为整个应用程序提供单一的事实来源。 Vue 有官方的 Vuex,它是没有 Sagas 的低保真 Redux。 Redux 本身有一些缺点(代码库大,时间旅行困难)和优点(sagas),而 MST 是一种纯粹的魔法并且与 TS 完美集成。
-
您是否使用来自
mobx-vue的Observer包装/装饰您的Vue 组件?
标签: vue.js mobx mobx-state-tree