官方解释:Vuex是一个专门为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension (opens new window),提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能
状态管理模式是什么呢
- 其实可以把他看成需要多个组件共享的变量全部存储在一个对象里面。
- 然后,将这个对象放在顶层的Vue实例中,让其他组件可以共同使用。
- 这样,多个组件就可以共享这个对象里面的所有变量属性了
- Vuex提供这样一个在多个组件中共享状态的插件,它里面的所有属性都是响应式的
安装Vuex
npm install vuex --save
创建一个store(仓库)文件夹
官方解释:每一个 Vuex 应用的核心就是 store(仓库)。“store”基本上就是一个容器,它包含着你的应用中大部分的状态 (state)。Vuex 和单纯的全局对象有以下两点不同:
- Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。
- 你不能直接改变 store 中的状态。改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation。这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地了解我们的应用。
配置Vuex
import Vue from 'vue'
import Vuex from 'vuex'
// 安装到vuex
Vue.use(Vuex)
// 创建对象
// Vuex里面有一个属性叫Store(状态)
// new出来Vuex里面的Store属性,他是一个大仓库
const store = new Vuex.Store({
// 它里面有这几个固定的属性
state: {},
getters: {},
mutations: {},
actions: {},
modules: {}
})
// 导出Vuex
export default store
在main.js中挂在它
import Vue from 'vue'
import App from './App.vue'
import store from './store'
Vue.config.productionTip = false
// 挂在到里面的new Vue({el:'#app,store'})后
// 他就会给Vue.prototype.$store = store
new Vue({
store,
render: h => h(App),
}).$mount('#app')