必须要知道的知识点~对于vuex的理解

130 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第11天,点击查看活动详情 微信小程序支付功能

概念 

Vuex是一个专为Vue开发的应用程序的状态管理模式,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex采用类似全局对象的形式来管理所有组件的公用数据。

也可以简单来说vuex是一个数据管理库 提供统一的状态管理

vue2中

vuex里分别有state、mutation、actions、getters、modules

state是将多个组件中需要共享的数据放入其中

mutation:改变store中的数据时,使用mutation,但只能包含同步的操作,在具体组件里面调用的方式是(commit)this.$store.commit('xxxx')

actions:它也可以改变store中的数据,不过是要调用mutation里的函数间接修改store,它是异步操作,在组件中的调用方式(dispatch)this.$store.dispatch('xxx') ; 在actions里面使用的commit('调用mutation的方法')

getters是计算属性

modules是模块化,要使用namespaced:true开启命名空间,实现模块化

在vue3中

使用pinia代替vuex,原因是:pinia轻量化 --- 代码体积小,打包时体积变小,速度更快,且vuex的官方也强烈推荐新项目使用pinia,还有vue开发者工具也支持pinia

pinia配置方法只有:state、getters、actions这三种,比vue2少了两种

actions:异步任务、同步任务都可以在里面发送,因此也不用像之前一样区分同步任务还是异步任务 而v2中它只能发送异步任务

定义store:defineStore  storeId是唯一标识  可以有多个store 跟modules功能一样

state:是用来存储数据的

getters:是用来计算的