详解Vuex的属性和作用

2022-04-15 0 1,084
目录
  • Vuex是什么?
  • Vuex的5个属性
    • vuex的State特性是?
    • vuex的Getter特性是?
    • vuex的mauation特性是?
    • vuex的action特性是?
  • 什么情况下应该使用Vuex?
    • 总结

      Vuex是什么?

      VueX是一个专门为 Vue.js 应用设计的状态管理架构,统一管理和维护各个vue组件的可变化状态(你可以理解成 vue 组件里的某些 data )。

      vuex 可以理解为一种开发模式或框架。比如 PHP 有 thinkphp ,java 有 spring 等。

      通过状态(数据源) 集中管理驱动组件的变化(好比 spring 的 IOC 容器对 bean 进行集中管理)。

      Vuex有五个核心概念,state, getters, mutations, actions, modules

      应用级的状态集中放在 store 中; 改变状态的方式是提交 mutations ,这是个同步的事物; 异步逻辑 应该封装在 action 中。

      Cuex借鉴了 Flux、Redux、和 The Elm Architecture。与其他模式不同的是,Vuex 是专门为 Vue.js 设计的状态管理库,以利用 Vue.js 的细粒度数据响应机制来进行高效的状态更新。

      状态管理: 简单理解就是统一管理和维护各个vue组件的可变化状态(你可以理解成vue组件里的某些data)

      Vuex的5个属性

      • state:单一状态树,用一个对象就包含了全部的应用层级状态。
      • getters:就像计算属性一样,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。
      • mutations:每个mutation都有一个字符串的事件类型 (type) 和一个回调函数 (handler)。
      • action:action 类似于mutation,不同在于:action 提交的是mutation,而不是直接变更状态;action可以包含任意异步操作。
      • modules:模块化vuex,每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块。

      vuex 的 State 特性是?

      1 、Vuex 就是一个仓库,仓库里面放了很多对象。其中 state 就是数据源存放地,对应于与一般 Vue 对象 里面的 data。

      2 、state 里面存放的数据是响应式的,Vue 组件从 store 中读取数据,若是 store 中的数据发生改变,依赖 这个数据的组件也会发生更新。

      3 、它通过 mapState 把全局的 state 和 getters 映射到当前组件的 computed 计算属性中。

      vuex 的 Getter 特性是?

      1 、getters 可以对 State 进行计算操作,它就是 Store 的计算属性

      2 、 虽然在组件内也可以做计算属性,但是 getters 可以在多组件之间复用

      3 、 如果一个状态只在一个组件内使用,是可以不用 getters

      vuex 的 mauation 特性是?

      1、mutation是一个对象包含多个直接更新state的方法(回调函数)

      2、只能包含同步的代码, 不能写异步代码

      vuex 的 action 特性是?

      1 、action 类似于 mutation ,不同在于:

      2 、action 提交的是 mutation ,而不是直接变更状态。

      3 、action 可以包含任意异步操作

      什么情况下应该使用 Vuex?

      虽然 Vuex 可以帮助我们管理共享状态,但也附带了更多的概念和框架。这需要对短期和长期效益进行权衡。

      如果不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。确实是如此——如果您的应用够简单,您最好不要使用 Vuex。一个简单的global event bus就足够您所需了。但是,如果您需要构建是一个中大型单页应用,您很可能会考虑如何更好地在组件外部管理状态,Vuex 将会成为自然而然的选择。

      总结

      本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注NICE源码的更多内容!

      免责声明:
      1、本网站所有发布的源码、软件和资料均为收集各大资源网站整理而来;仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 不得使用于非法商业用途,不得违反国家法律。否则后果自负!

      2、本站信息来自网络,版权争议与本站无关。一切关于该资源商业行为与www.niceym.com无关。
      如果您喜欢该程序,请支持正版源码、软件,购买注册,得到更好的正版服务。
      如有侵犯你版权的,请邮件与我们联系处理(邮箱:skknet@qq.com),本站将立即改正。

      NICE源码网 JavaScript 详解Vuex的属性和作用 https://www.niceym.com/21975.html