vue状态管理vuex

vue单页项目开发总是要管理一些状态值,比如登录状态之类,简单的学习了vuex,分享一下。
这里暂时介绍vuex里面的三个模块的功能,state,getters和mutations

1. 在我们的单页项目中安装vuex
npm install vuex --save

2,在我们项目的文件目录中的src文件夹下面新建一个文件夹,文件夹名名字随意,一般叫vuex,store之类的,我这里取名vuex,然后在这个新建的文件夹里新建一个index.js的文件
在这里插入图片描述
3,在index.js文件中引入vue和vuex,然后写上我们需要用的vuex模块,我这里写了state,getters和mutations,全部代码如下。下面会讲解一下这三个的功能和用法。

import Vue from 'vue'
import Vuex from 'vuex'
 
Vue.use(Vuex)
 
const state = {
    count: 1
}
 
const getters = {
    getNum(state) {
        return state.count;
    }
}
 
const mutations = {
    add(state) {
        state.count += 1;
    },
    reduce(state) {
        state.count -= 1;
    }
}
 
export default new Vuex.Store({
    state,
    getters,
    mutations
})

4,我们需要在main.js文件中引入已经上面我们建好的文件
在这里插入图片描述
在引入的时候需要注意,store是个关键字,必须要用store这个词!!!我试着用其他的就会报错。
5,state,getters和mutations的具体用法
state:这是一个存储状态值的对象,我们需要存储的状态值都放在这个对象里。比如我在文件存了count,它的初始值是1,获取state里的值使用 this. s t o r e . s t a t e . c o u n t 这 个 方 法 。 比 如 我 在 m o u n t e d 里 面 c o n s o l e . l o g ( t h i s . store.state.count 这个方法。比如我在mounted里面console.log(this. store.state.countmountedconsole.log(this.store.state.count);输出的就是1.( this必须写!!!)
getters:如它的翻译一样,你可以在这里面获取想要的状态值。我在这里面写了一个函数return state里面的count值。需要注意第一个参数一定是state!!!

getNum(state){

return state.count

}
如何使用这个getters对象呢,调用方法 this. s t o r e . g e t t e r s . g e t N u m , 比 如 我 在 m o u n t e d 里 面 c o n s o l e . l o g ( h i s . store.getters.getNum ,比如我在mounted里面console.log(his. store.getters.getNummountedconsole.log(his.store.getters.getNum);输出的就是1.( this必须写!!!)

mutations:这里是对状态值进行二次加工的,可以写一些函数对状态值进行处理。比如我写的一个加一个减的函数

add(state){

state.count += 1;

}

reduce(state){

state.count -= 1;

}

调用方法:this. s t o r e . c o m m i t ( ′ a d d ′ ) ; t h i s . store.commit('add'); this. store.commit(add);this.store.commit(‘reduce’); 注意传参问题,这里可以传两个参数,应该只能传两个参数,一个参数必须是state,例如

add(state,num){

state.count += num;

}

这样每次操作count的值就会加num。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值