目录
Vuex 是什么
- Vuex 专为 Vue.js 应用程序开发的响应式状态管理模式
- 采用集中式存储管理应用所有组件状态,以相应规则保证状态以一种可预测的方式发生变化
- Vuex 已集成到 Vue 官方调试工具 devtools 中
Vuex 安装
- npm 安装
npm install vuex -S
- yarn 安装
yarn add vuex
Vuex 使用
- 模块化打包系统中,必须通过 Vue.use() 来使用 Vuex
- Vue.use(Vuex) 将状态从根组件注入到每一个子组件中
// store/index.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex) // 将状态从根组件“注入”到每一个子组件中
export default new Vuex.Store({ })
- main.js/main.ts 中导入 store 仓库
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import './plugins/element.js'
import store from './store'
Vue.config.productionTip = false
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
Vuex 应用核心 store 仓库
- store 是一个容器包含着应用中大部分的状态 state
Vuex 优势
- Vuex 状态存储是响应式的
- Vue 组件从 store 中读取状态,若 store 中状态发生变化,相应组件也会得到高效更新
Vuex 缺点
- 不能直接改变 store 中的状态
- 改变 store 中的状态,唯一途径显式提交 commit mutation;放便跟踪每一个状态变化
store 中的状态是响应式的,在组件中调用 store 中的状态仅需要在计算属性 computed 中返回即可。触发变化也仅仅是在组件的 methods 中提交 mutation。