## 使用
```
//配置vuex步骤
//1.运行 npm i vuex -S
//2.导入包
import Vuex from 'vuex'
//注册vuex到vue中
Vue.use(Vuex);
//4.new Vuex.Store() 实例,得到一个数据仓储对象
var store = new Vuex.Store({
state: {
//可以把state想象成组件中的data,专门存储数据的
count: 0,
},
//注意:如果要操作store中的state值,只能通过调用mutation提供的方法,才能操作对应的数据.
//不推荐直接操作state,因为万一导致了数据的紊乱,不能快速定位到错误的原因,因为每个组件都可能有操作数据的方法
//最多只能传递一个参数
mutations: {
increment: function (state, params) {
state.count++;
},
//注意:如果组件想要调用mutation中的方法,只能使用this.$store.commit('方法名')
//这种调用mutation方法的格式,和this.$emit()相似
decrement: function (state, params) {
state.count -= params;
}
},
getters: {
//注意:这里的getters,只负责对外提供数据,不负责修改数据,如果想要修改state中的数据,请去找mutations
optCount: function (state) {
return '当前最新的count值:' + state.count;
//使用如下方式调用
// {{$store.getters.optCount}}
//对比发现,发现getters中的方法和组件中的过滤器比较类似,因为过滤器和getters都没有修改原数据,都是把元数据做了一层包装,提供给了调用者.
//其次,getters也和computed比较像,只要sate中的数据发生了变化,那么,如果getters正好也引用了这个数据,那么就会立即触发getters的重新求值.
}
}
});
//总结:
//1.state中的数据,不能直接修改,如果想要修改,必须通过mutations
//2.如果㢟想要直接从state上获取数据:需要this.$store.state.***
//3.如果组件想要修改数据,必须使用mutations提供的方法,需要通过this.$store.commit('方法名称',唯一的一个参数)
//4.如果store中的state上的数据,在对外提供的时候,需要做一层包装,那么,推荐使用getters,如果需要使用getters,则用this.$store.getters.***
Vue.config.productionTip = false;
new Vue({
el: '#app',
router,
//5.挂载vue实例中
store,
components: {App},
template: '<App/>'
});
```
- 基础
- MVVM
- 前端组件化
- VUE实例
- 生命周期
- 指令
- v-bind
- 模板语法
- 使用样式
- class样式
- 内联样式
- v-for
- v-if和v-show
- 过滤器
- 计算属性
- 方法侦听器
- 计算属性的set和get
- watch,computed,methods对比
- 样式绑定
- 条件渲染
- 组件
- 组件化和模块化区别
- 使用组件的细节
- 父子组件数据传递
- 组件参数校验与非props特性
- 给组件绑定原生事件
- 非父子组件间的传值
- 在vue中使用插槽
- 作用域插槽
- 动态组件与v-once指令
- 动画特效
- vue中CSS动画原理
- 使用animate
- 同时使用过度和动画
- JS动画与velocity的结合
- 多个元素或组件的过度
- vue列表过度
- 动画封装
- 路由
- 什么是路由
- VUEX
- 概述
- 安装
- 访问仓库