import Vue from 'vue';
import App from './App.vue';
import PageA from './pages/PageA';
import PageB from './pages/PageB';
import PageC from './pages/PageC';
import PageD from './pages/PageD';
import PageE from './pages/PageE';
import PageF from './pages/PageF';
import 'bootstrap/dist/css/bootstrap.min.css';
Vue.config.productionTip = false;
// 第2步:导入vuex
import Vuex from 'vuex';
Vue.use(Vuex);
// 第3步: 构建vuex的store
const store = new Vuex.Store({
// 所有的状态(共享数据)都在放在state
state: {
count: 200,
list: [
{id:1, name:'棒棒糖'},
{id:2, name:'尿不湿'}
]
},
getters: {
size(state) {
return state.list.length;
},
doubleCount(state) {
return state.count * 2;
}
},
// 第1步:定义mutation
mutations:{
increment(state, value) {
state.count += value.step;
},
push(state, value) {
state.list.push(value);
}
},
actions: {
// action方法的第1个参数为上下文数, 通过context下state或commit操作state状态
incrementAsync({ commit } , value) {
setTimeout(() => {
commit('increment', value);
} , 1000);
},
patch({ commit } ,value) {
console.log(value);
commit('increment' , {step: value.step});
commit('push' , value.commodity);
}
}
});
import VueRouter from 'vue-router';
Vue.use(VueRouter);
const routes = [
{ path: '/', redirect: '/a'},
{ path: '/a', name: 'a', component: PageA},
{ path: '/b', name: 'b', component: PageB},
{ path: '/c', name: 'c', component: PageC},
{ path: '/d', name: 'd', component: PageD},
{ path: '/e', name: 'e', component: PageE},
{ path: '/f', name: 'f', component: PageF},
];
const router = new VueRouter({
routes
});
// 全局响应式共享对象
Vue.prototype.store = Vue.observable({
count: 50
});
// 第1步:原型上添加vue类型的对象,总线
Vue.prototype.bus = new Vue();
// 根组件
new Vue({
data: {
globalCount: 100
},
// 第4步:注入到根组件中
store,
router,
render: h => h(App),
}).$mount('#app')