//mutations.js
import getters from './getters'
const state={
header:true
};
const mutations={
showHeader(state){
alert(2);
state.header=true;
},
hideHeader(state){
state.header=false;
}
};
// const getters={
// headerShow:(state)=>{
// return state.header;
// }
// }
export default{
state,
mutations,
getters
}
//actions.js
export default{
showHeader:({commit})=>{
commit('showHeader')
},
hideHeader:({commit})=>{
commit('hideHeader')
}
}
//getter.js
export default{
headerShow:(state)=>{
alert(1);
return state.header;
}
}
//store.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex);
import mutations from './mutations.js'
import actions from './actions.js'
export default new Vuex.Store({
modules:{
mutations
},
actions
});
//app.vue
import {mapGetters,mapActions} from 'vuex'
export default {
computed:mapGetters([
'headerShow'
]),
// mounted:function(){
// console.log(headerShow);
// },
watch:{
$route(to,from){//当路由发生变化,触发此函数
if(to.path=='/user-info'){
this.$store.dispatch('hideHeader');
}else{
this.$store.dispatch('showHeader');
}
}
},