最近使用 vuex 在整个单页面项目组件间共享数据,以下 demo 通过 vuex 存储,修改、获取共享数据。由于之前没有使用过 vuex ,有什么不正确的地方,还请大家指正。
一、什么是Vuex
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。也就是说 Vuex 用于单页面应用组件之间的数据共享,在组件嵌套很多层的情况下,Vue 中父子组件的通信过程就变得很麻烦,此时使用 Vuex 方便了组件间的通信。顺便说一下 HTML5 提供的数据存取机制 localStorage ,localStorage 存储的数据存在浏览器中,也就是本地磁盘中,localStorage 多数情况用于页面之间传递数据。Vuex 是将数据存储在了内存中,每一次刷新页面,之前存在 Vuex 中的数据就会重新初始化。
二、Vuex 的安装
1 | $ npm install vuex |
三、Vuex 的使用
新建一个 store.js, 在 store.js 编写如下代码:
1 | import Vue from 'vue' |
组件 setlist.vue 文件中修改共享数据1
2
3
4
5
6
7
8
9
10
11<script>
import { mapMutations } from 'vuex'
export default {
mounted () {
this.setList(['hello'])
},
methods: {
...mapMutations(['setList'])
}
}
</script>
组件 getlist.vue 文件中获取共享数据
1 | import { mapGetters } from 'vuex' |
补充:
通过在根实例中注册 store 选项,该 store 实例会注入到根组件下的所有子组件中,且子组件能通过 this.$store 访问到。
参考文档
More info: https://vuex.vuejs.org/zh/