vue项目自带javascript
在store目录新建store.tsvue
import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); export default new Vuex.Store({ state: { token: '11', errMess: new Array<Map<string, any>>(), errMes: {}, }, mutations: { setToken(state, token) { state.token = token; }, setErrMes(state, errMes1: Map<string, any>) { state.errMess.push(errMes1); const delayTime = Number(errMes1.get('delayTime')); if (delayTime) { setTimeout(() => { const mes = state.errMess.pop(); }, delayTime); } else { setTimeout(() => { const mes = state.errMess.pop(); }, 3000); } }, }, actions: {}, modules: {}, });
main.ts文件引入 storejava
import Vue from 'vue'; import App from './App.vue'; import '../../registerServiceWorker'; import router from '../../router'; import store from '../../store'; new Vue({ router, store, render: (h) => h(App), }).$mount('#app');
直接使用stateweb
computed: { test() { return this.$store.state.token; }, errMes() { return this.$store.state.errMess[0]; }, },
使用mutationsvuex
const errMes = new Map(); errMes.set('message', '你好! vuex'); this.$store.commit('setErrMes', errMes); this.init();