什么是Vuex?Vuex是专门为Vue.js应用程序开发的状态管理模式。它使用集中存储来管理应用程序所有组件的状态,并使用相应的规则来确保状态以可预测的方式变化。Vuex也集成在了Vue官方调试工具devtoolsextension中,提供了零配置穿越调试、状态快照导入导出等高级调试功能,什么时候使用Vuex通常情况下,我们需要决定是否使用根据项目实际规模引入Vuex。如果需要存储的内容不是特别多,那么我们也可以通过本地存储来完成一些数据的存储和操作。因为对于过于简单的项目,使用Vuex会很麻烦和多余。例子:我们看官网的一段代码,内容如下:newVue({//statedatasourcedata(){return{count:0}},//viewviewtemplate:`
{{count}}
`,//actionseventmethods:{increment(){this.count++}}})这是一个很简单的增量计数功能页面,通过事件增量,计数为增加然后渲染到界面。这个有状态的自我管理应用程序由以下部分组成:状态:驱动应用程序的数据源。视图:以声明方式将状态映射到视图。Actions:响应用户在视图上输入引起的状态变化,进而影响状态。下图是一个“单向数据流”的概念:这个概念的缺点是当我们的应用遇到多个组件共享状态时,单向数据流的简单性很容易被破坏,比如:多个视图依赖于同一个状态。传递参数的方法对于多层嵌套的组件来说会很繁琐,而且对于兄弟组件之间的状态传递也无能为力。来自不同视图的操作需要改变相同的状态。我们经常使用父子组件直接引用或传递事件来改变和同步多份状态。上面的这些模式非常脆弱,通常会导致代码无法维护。那么,为什么我们不把组件的共享状态抽取出来,用全局的单例模式来管理呢?在这种模式下,我们的组件树构成了一个巨大的“视图”,无论在树的哪个位置,任何一个组件都可以获得状态或者触发行为!通过定义和隔离状态管理中的各种概念,并通过强制规则保持视图和状态之间的独立性,我们的代码将变得更加结构化和可维护。Vuex的五个核心概念Vuex有五个核心概念,分别是state、getters、mutation、action和modules。state:Vuex的基础数据,用来存放变量。Getters:从基础数据状态中派生出来的数据,相当于状态的计算属性。mutation:提交更新数据的方法必须是同步的。如果你需要异步使用动作。每个突变都有一个字符串事件类型和一个回调函数处理程序。action:和mutation的作用大致相同,不同的是action提交的是mutation,而不是直接改变state。action可以包含任何异步操作。modules:ModularVuex允许每个模块有自己的state、mutation、action和getters,使得结构非常清晰并且易于管理。链接:https://www.9xkd.com/