如何使用Vuex实现组件之间的数据共享
Vuex 概述
Vuex是什么
Vuex是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间的数据共享
1. 使用Vuex的好处
- 易于开发和后期维护
- 提高开发效率
- 实时保持数据与页面的同步
2. Vuex的基本使用
2.1 安装vuex依赖包
1 | npm install vuex --save |
2.2 导入vuex依赖包
1 | import Vuex from 'vuex' |
2.3 创建store对象
1 | const store = new Vuex.store ({ |
2.4 将store对象挂载到vue实例中
1 | new Vue({ |
3. Vuex的核心概念
vuex中的核心概念如下:
- State:提供唯一的公共数据源,所有共享的数据都要统一放到Store的State中进行存储
1
2
3
4// 创建store数据源,提供唯一公共数据
const store = new Vuex.Store({
state: { count: 0 }
}) - Mutation:Mutation用于变更Store中的数据
1
2
3
4
5
6
7
8
9
10
11
12// 定义 Mutation
const store = new Vuex.Store({
state: {
count: 0
},
mutations: {
add(state) {
// 变更状态
state.count++
}
}
}) - Action:触发actions异步任务时携带参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25// 定义Action
const store = new Vuex.Store({
// ...省略其他代码
mutations: {
addN(state,step) {
state.count += step
}
},
actions: {
addNAsync(context,step) {
setTimeout(() => {
context.commit('addN', step)
},1000)
}
}
})
// 触发Action
methods: {
handle() {
// 在调用 dispatch函数,
// 触发 actions 时携带参数
this.$store.dispatch('addNAsync', 5)
}
} - Getter:Getter用于对Store中的数据进行加工处理形成新的数据
1
2
3
4
5
6
7
8
9
10
11// 定义Getter
const store = new Vuex.Store({
state: {
count: 0
},
getters: {
showNum: state => {
return '当前最新的数量是【'+ state.count +'】'
}
}
})
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小文——Blog!
评论
ValineDisqus