• Vuex状态管理模式


    根据官网,vuex是一个专为vue.js应用程序开发的状态管理模式。

    Vuex状态管理模式有5种,分别为:State、 Getter、Mutations 、Action、 Module。

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

    场景有:单页应用中,组件之间的状态、音乐播放、登录状态、加入购物车。

    State: 该属性用来存储数据和存储状态。它的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变,才会被被重新计算。

    Getter:该属性类似于vue.js的计算属性。可以对State进行计算操作,虽然组件内也可以进行计算操作,但是Getter可以在多组件之间复用,而且Getter的返回值会根据它的依赖被缓存起来,只有Getter中的依赖值(state中的某个需要派生状态的值)发生改变的时候才会被重新计算。

    Mutations:该属性用来更改state 的状态。每个mutation都有一个字符串类型的事件类型和一个回调函数,在函数中改变state的值。执行这个函数,需要执行一个相应的调用方法:store.commit。

    Action : 该属性用来提交mutations,在action中可以执行store.commit,action没有异步操作。在页面中使用这个action,可以执行store.dispatch。

    Module : 该属性可以将store分割程不同的模块。每个模块有自己的state,mutations,action,getters。使结构变得更加清晰,方便管理。

    const store = new Vuex.Store({ //store实例
          state: {
             count: 0
                 },
          mutations: {                
             increment (state) {
              state.count++
             }
              },
          actions: { 
             increment (context) {
              context.commit('increment')
       }
     }
    })

    用Vuex的好处:

    1、可以做状态管理,数据更新可以驱动视图更新;

    2、可以当成一个内存数据库用,像H5 的Cookie,localStaorage之类的。但是Vuex在刷新后会自己销毁,而H5的那些本地存储则还会在浏览器中。

    不用Vuex不好的地方:

    1、可维护性降低;

    2、可读性下降;

    3、增加耦合,大量的上传派发,会让耦合性大大的增加。

  • 相关阅读:
    设置navigationBar透明,隐藏iOS导航条底部与self.view的分界线
    毛玻璃效果
    手动代码约束,等比例
    UIScrollView基本用法和代理方法
    swift学习笔记
    设置子视图背景颜色不影响到父视图的背景颜色方法
    JS内置对象
    JS创建自定义对象
    dom添加事件
    dom对象操作Html,Css
  • 原文地址:https://www.cnblogs.com/linjiangjin/p/10417515.html
Copyright © 2020-2023  润新知