vuex实战

vuex是一个专门为vue.js设计的集中式状态管理架构,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
vuex可以方便进行组件(页面)之间的传值
vuex可以对数据持久化

1、安装vuex

进入根目录
npm install vuex --save

2、新建store.js文件

新建store.js文件
在此文件中写入

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
//增加一个常量
const state = {
count: 1
}
//向外暴露store
export default new Vuex.Store({
state,
mutations
})

在这里插入图片描述

3、在main.js 中导入store.js文件

import store from './module/store'
在main.js的new Vue中加入store
在这里插入图片描述

4、在组件中使用store

获取state数值方法
this.$store.state.count
在这里插入图片描述

5、在组件中修改store中的数值

在这里插入图片描述
在store.js文件中添加Mutations

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
//增加一个常量
const state = {
count: 1
}
//定义 mutations ,处理状态的改变
const mutations = {
add (state) {
  ++state.count
},
reduce (state) {
  --state.count
}
}
//向外暴露store
export default new Vuex.Store({
state,
//此处要添加mutations
mutations
})

在这里插入图片描述
在组件中修改state的数值
调用定义在Mutations的方法
$store.commit('reduce')
在这里插入图片描述
在这里插入图片描述

6、vuex的getter过滤

vuex提供了getter,通过此可以在获取state值得过程中对state的数据进行计算然后再取值。
在store.js加入getters

const getters = {
getCount (state, date) {
  state.count += date
  return state.count
}
}
export default new Vuex.Store({
state,
mutations,
getters
})

在这里插入图片描述
获取getter的值
$store.getters.getCount
在这里插入图片描述

7、vuex的actions

actions和Mutations差不多,actions可以异步的改变state状态(但不能直接操作State),而Mutations是同步改变状态,actions是可以调用Mutations里的方法的。
在store.js加入actions

     const mutations = {
  add1 (state, date) {
    state.count += date
    console.log(state.count)
  }
}
const actions = {
  actionAdd1 (context) {
    context.commit('add1', 5)
  },
  actionAdd2 ({commit}, date) {
    commit('add1', date)
  }
}
export default new Vuex.Store({
  state,
  mutations,
  getters,
  actions
})

在这里插入图片描述
在组件中使用action
$store.dispatch('actionAdd2',10)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值