你是怎么认识 Vuex 的? | 您所在的位置:网站首页 › 池田樱子与张北是怎样认识的 › 你是怎么认识 Vuex 的? |
1. Vuex是什么?
官方解释是:vuex是一个专为vue.js应用程序开发的状态管理模式(它采用集中式存贮管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化)。 你可以理解为vuex一种开发模式或框架。比如 PHP 有 thinkphp,java 有 spring 等,通过状态(数据源)集中管理驱动组件的变化(好比 spring 的 IOC 容器对 bean 进行集中管理)。 2. 为什么要用 Vuex 因为多个组件依赖于同一状态时,对于多层嵌套的组件的传参将会非常繁琐,并且对于兄弟组件间的状态传递无能为力。 并且来自不同组件的行为需要变更同一状态。以往采用父子组件直接引用或者通过事件来变更和同步状态的多份拷贝。以上的这些模式非常脆弱,通常会导致无法维护的代码。 所以我们需要把组件的共享状态抽取出来,以一个全局单例模式管理。在这种模式下,我们的组件树构成了一个巨大的“视图”,不管在树的哪个位置,任何组件都能获取状态或者触发行为。 另外,通过定义和隔离状态管理中的各种概念并强制遵守一定的规则,我们的代码将会变得更结构化且易维护。 3. Vuex 的核心属性 3.1 state存储数据,存储状态;在根实例中注册了store 后,用 this.$store.state 来访问;对应vue里面的data;存放数据方式为响应式,vue组件从store中读取数据,如数据发生变化,组件也会对应的更新。 3.2 getters可以认为是 store 的计算属性,它的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算,可以对state中的数据做一些处理。 3.3 mutation更改 Vuex 的 store 中的状态的唯一方法是提交 mutation,通过store.commit提交到mutations模块 3.4 actionactions是异步的改变state中状态的方法,通过store.dispatch来提交到mutations模块,再通过提交commit来更改state中的状态 3.5 modulesVuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块——从上至下进行同样方式的分割 如果想要了解更详细的,可以查看这一篇博客 |
CopyRight 2018-2019 实验室设备网 版权所有 |