装饰者模式(Decorator Pattern)在Vuex中的应用思考

装饰者模式 又称装饰器模式,在不改变原对象的基础上,通过对其添加属性或方法来进行包装拓展,使得原有对象可以动态具有更多功能。

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

理解一:在Vuex中,单一状态树作为唯一数据源,Store对象相当于原对象。State、Getters、Mutations、Actions、Modules相当于这单一状态树的装饰器,通过这些装饰器来提供额外功能,如获取状态、缓存状态、状态改变、分割状态树等,并且这些装饰器可以相互独立,互不依赖,也可以层层套用,配合使用。虽然有些装饰器的使用会修改原对象的值,但并没有改变对应状态树的结构。

理解二:Actions是一个装饰器,它包裹Mutations使之可以异步使用。对于Store对象,使用Action可以异步改变状态;不用Actions也能使用Mutations来同步改变状态;使用Actions也不会改变State、Getters、Mutations的用法、结构。

const store = new Vuex.Store({

  state: {

    count: 0

  },

  mutations: {

    increment (state) {

      state.count++

    }

  },

  actions: {

    increment (context) {

      context.commit('increment')

    }

  }

})


版权声明:本文为hoaxxcj原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。