Vuex3.x、Vuex4.x状态管理器学习笔记
- 作者: 五速梦信息网
- 时间: 2026年03月21日 04:38
Vuex使用记录
1.在Vue2.x中使用
import Vuex from 'vuex' /* 引入Vuex */
Vue.use(Vuex) /* 安装插件 */
/* 实例化Vuex */
const store = new Vuex.Store({
state: {
count: 0
},
mutations: {
increment (state) {
state.count++
}
}
})
/* 挂载到所有组件 */
new Vue({
el: '#app',
store: store,
})
2.在Vue3.x中使用
import { createApp } from 'vue'
import { createStore } from 'vuex'
/* 创建一个新的 store 实例 */
const store = createStore({
state () {
return {
count: 0
}
},
mutations: {
increment (state) {
state.count++
}
}
})
const app = createApp({ /* 根组件 */ })
/* 将 store 实例作为插件安装 */
app.use(store)
3.辅助函数
mapState、mapGetters、mapActions、mapMutations
...mapActions([
'some/nested/module/foo', /* -> this['some/nested/module/foo']()*/
'some/nested/module/bar' /*-> this['some/nested/module/bar']()*/
])
/* 可以在第一个参数中传递模块名,简写 */
...mapActions('some/nested/module', [
'foo', /* -> this.foo() */
'bar' /* -> this.bar()*/
])
4.学习
- Vuex 使用单一状态树——是的,用一个对象就包含了全部的应用层级状态。至此它便作为一个“唯一数据源 (SSOT)”而存在。
- Vuex的对象可以用过use注入vue应用,成为所有组件的store属性。也可以单独引入这个对象,单独使用。
- Vuex的所有方法中,this指向Vuex对象。
5.state(状态/数据)
computed: mapState([
/*映射 this.count 为 store.state.count*/
'count'
])
6.getter(state的计算属性?)
getters: {
doneTodos: (state) => {
return state.todos.filter(todo => todo.done)
}
}
7.mutation(事件,由commit触发)
store.commit('increment')
...mapMutations({
add: 'increment' /*将 `this.add()` 映射为 `this.$store.commit('increment')`*/
})
8.action(异步处理状态,由dispatch触发)
actions: {
increment ({ commit }) {
commit('increment')
}
}
/* 参数解构 */
actions: {
checkout ({ commit, state }, products) {
}
}
9.模块分割 Module
const moduleA = {
state: () => ({ ... }),
mutations: { ... },
actions: { ... },
getters: { ... }
}
const moduleB = {
state: () => ({ ... }),
mutations: { ... },
actions: { ... }
}
const store = createStore({
modules: {
a: moduleA,
b: moduleB
}
})
store.state.a /* -> moduleA 的状态 */
store.state.b /* -> moduleB 的状态 */
10.项目结构说明
11.组合式API使用
this.$store
12.订阅
订阅 store 的 mutation。handler 会在每个 mutation 完成后调用,接收 mutation 和经过 mutation 后的状态作为参数
订阅 store 的 action。handler 会在每个 action 分发的时候调用并接收 action 描述和当前的 store 的 state 这两个参数。 subscribe 方法将返回一个 unsubscribe 函数,当不再需要订阅时,应调用该函数。
- 上一篇: Vue3封装支持Base64导出的电子签名组件
- 下一篇: Vue后台管理系统开发,相关代码的笔记。
相关文章
-
Vue3封装支持Base64导出的电子签名组件
Vue3封装支持Base64导出的电子签名组件
- 互联网
- 2026年03月21日
-
vue3第二次传递数据方法无法获取到最新的值
vue3第二次传递数据方法无法获取到最新的值
- 互联网
- 2026年03月21日
-
Vue3 中 ref 与模板引用(template refs)的深入剖析与迁移策略
Vue3 中 ref 与模板引用(template refs)的深入剖析与迁移策略
- 互联网
- 2026年03月21日
-
Vue后台管理系统开发,相关代码的笔记。
Vue后台管理系统开发,相关代码的笔记。
- 互联网
- 2026年03月21日
-
Vue开发、学习笔记,持续记录
Vue开发、学习笔记,持续记录
- 互联网
- 2026年03月21日
-
Vue渲染函数该如何使用?有哪些需要注意的地方?
Vue渲染函数该如何使用?有哪些需要注意的地方?
- 互联网
- 2026年03月21日





