vuex使用mapgetters
首先使用vuex
这是index.js文件
import {createStore} from 'vuex'
import getters from "@/store/getters";
let files = require.context('./modules', false, /\.js$/);
let modules = {}
files.keys().forEach(key => {
modules[key.replace(/(\.\/|\.js$)/g, '')] = files(key).default
}) //自动引入module文件夹下的全部文件
export default createStore({
modules,
getters
})
是modules下的threed.js文件
import Storage from '@/utils/storage'
export default{
namespaced: true,
state:{
status:true
},
mutations:{
"CHANGE_STATUS":(state,info)=>{
console.log(info,'change');
let status= Storage.getItem('threed_status');
if(info[1]){
if (status) {
Storage.clearItem('threed_status');
}
state.status = info[0];
Storage.setItem('threed_status',state)
}else{
if(status){
state.status = status.status;
}
}
}
},
}
是getters.js文件
export default {
threed: (state) => state.threed.status,
}
使用mapgetters
import { mapGetters } from "vuex";
computed: {
...mapGetters(["threed"]),
},
mounted() {
this.$store.commit("threed/CHANGE_STATUS",[true,true]);
console.log(this.threed);
},