来实现一个缩水版Vuex

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了来实现一个缩水版Vuex相关的知识,希望对你有一定的参考价值。

对 Vuex 源码进行浓缩,DIY 一个小型 Vuex

功能如下

  1. 通过 $store.commit 改变 $store.state
  2. 实现 strict model

源码约70行左右比较好理解,下面讲解一下两个比较重要的点。

install

Vue.use(Vuex)实际上调用的是 Vuex 的 install 方法,该方法在每个组件的 beforeCreate 钩子中为当前组件注入 $store,使所有组件的 $store 属性都指向同一个对象,也就是创建 Vue 实例时传入的 store 对象。

监听 store

为什么当 state 对象发生变化时视图会被更新?原因是 store 内部创建了一个 Vue 对象对 state 进行监听(见源码 resetStoreVM 方法)。而且上面也提到,使用 Vuex 后,所有组件的 $store 都引用的都是同一个 store。所以当 state 变化时,绑定了 state 的视图都会更新。

原文地址:https://segmentfault.com/a/1190000017049048

以上是关于来实现一个缩水版Vuex的主要内容,如果未能解决你的问题,请参考以下文章

vuex版购物车

简易版Vuex源码实现

阿里类ChatGPT产品正在内测;谷歌AI聊天机器人翻车,市值缩水逾7000亿元;Android 14开发者预览版发布|极客头条

阿里类ChatGPT产品正在内测;谷歌AI聊天机器人翻车,市值缩水逾7000亿元;Android 14开发者预览版发布|极客头条...

阿里类ChatGPT产品正在内测;谷歌AI聊天机器人翻车,市值缩水逾7000亿元;Android 14开发者预览版发布|极客头条...

小白量化彩票实战彩票号码中六保五缩水和旋转矩阵