uniapp创建项目时已经有了vuex
创建src文件 下面创建文件store文件夹
创建index.js
index.js
import Vue from 'vue'
import Vuex from 'vuex' //uniapp创建项目自带vuex 直接引入
Vue.use(Vuex)
const store = new Vuex.Store({
state: {
signal: false
},
getters: {
},
mutations: {
signalState(state,data){
state.signal=data
}
},
actions: {
}
})
export default store
在man.js中设置公共方法
import store from '@/src/store/index.js'
Vue.prototype.$store = store
在页面中
<template>
<view @click='btn'>
<no-signal :signalState='signal'></no-signal>//这是一个组件
</view>
</template>
<script>
import {mapState} from 'vuex'//mapState、mapGetters、mapMutations、mapActions 是vuex的方法
export default {
computed:{
...mapState(['signal']),
},
methods:{
//修改vuex 里signal 的值
btn(){
this.$store .commit('signalState',true)
//$store 是在main.js里定义的一个公共的方法
}
}
}
</script>
这时候组件的 signal 是动态的拿到了vuex里的值