一、uniapp 引入定义挂载Vuex
1、在根目录下建立store目录创建index.js文件
代码如下
import Vue
from 'vue'
import Vuex
from 'vuex'
Vue
.use(Vuex
)
export default new Vuex.Store({
state
:{
loginStatus
:false
},
getters
:{
reverseLoginStatus(state
){
return state
.loginStatus
+ 1
}
},
mutations
:{
changeLoginStatus(state
,playload
){
state
.loginStatus
= playload
.num
;
}
},
actions
:{
loginStatusAction(context
,playload
){
console
.log(playload
)
context
.commit('changeLoginStatus',{num
: playload
.number
})
}
}
})
2、在mian.js 中挂载store
import Vue
from 'vue'
import App
from './App'
import store
from './store/index.js'
Vue
.prototype
.$store
= store
Vue
.config
.productionTip
= false
App
.mpType
= 'app'
const app
= new Vue({
store
,
...App
})
app
.$mount()
二、uniapp中使用vuex
1、直接调用state中的值
this.$store
.state
.loginStatus
2、修改state中的值
这里需要在mutations中定义修改的方法,如上changeLoginStatus
this.$store
.commit('changeLoginStatus',{num
:123,age
:12})
3、调用actions中的方法
this.$store
.dispatch('loginStatusAction',{number
:123})
4、调用getters中的方法
this.$store
.getters
.reverseLoginStatus
5、状态方法监控
import {mapState
,mapMutations
} from 'vuex'
methods
: {
...mapMutations(['changeLoginStatus'])
},
computed
:{
...mapState(['loginStatus'])
}
转载请注明原文地址:https://blackberry.8miu.com/read-29513.html