Vuex的原理,它的属性有哪些?

Vuex用来管理多个组件的共享状态。
适用场景:
1.多个视图依赖于同一状态
2.来自不同视图的行为需要变更同一状态

每个Vuex应用的本质是store(仓库),包含应用中大部分的状态。
开始使用:

npm install vuex
import 'vuex'
Vue.use(Vuex)

const store  = new Vuex.Store({
    state:{
        num:1,
    },
    mutations:{
        add(state){
            state.num++;
        };
    },
}
})

1.state

就是定义状态,Vue是单一状态树。便于管理
mapState辅助函数:
当一个组件需要获取多个状态的时候,将这些状态都定义为计算属性会有些重复和冗余,可以使用mapState帮助生成计算属性。

import {mapState} from 'Vuex'

//组件中使用:
computed: mapState([
    "count";//映射this.count为state.count
])
computed: mapState({
    countA: state => state.count,
    countB: 'count',
    //为了拿到this,需要用普通函数
    countC(state){
        return state.count + this.num
    },
})
//相当于:
computed:{
    count=> this.store.state.count
}

对象展开运算符...

computed: {
   ...mapState(['count']),
   num(){ return 123},
}

2.Getter

可以认为是store 的计算属性,会把值存储起来,当依赖值发生改变才会重新计算。当需要使用state派生出一些状态时,我们可以用Getter做到。
mapGetter辅助函数用来将store的getter映射到局部计算属性。

getters: {
   fn: state => {
      //对state进行操作
   }
}

//在组件中使用
import {mapGetter} from 'vuex'
export default{
computed: {
   ...mapGetter(["fn"])
}
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 使用说明-Vuex 安装 直接下载 / CDN 引用 Unpkg.com 提供了基于 NPM 的 CDN 链接。以...
    满是裂缝的花卷阅读 1,120评论 0赞 8
  • Vuex是什么? Vuex 是一个专为 Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件...
    萧玄辞阅读 3,274评论 0赞 6
  • Vuex Vuex是一个专门为Vue.js应用所设计的集中式状态管理架构,它借鉴了Flux和Redux的设计思想,...
    JunChow520阅读 1,642评论 2赞 0
  • vuex是一个状态管理模式,通过用户的actions触发事件,然后通过mutations去更改数据(你也可以说状态...
    Ming_Hu阅读 2,200评论 3赞 3
  • 想变牛就一定不能缺少练习,你可否知道怎么 样练习效率更高?今天提供三个方法,按照提 示勤奋练习,一定能看到自己的改...
    冥想读书运动阅读 411评论 0赞 0

友情链接更多精彩内容