在上篇文章中咱們對於的Vue的路由作了模塊化的管理,方便在項目開發中更好的管理好本身的路由,同時也減低耦合性和維護成本。若是你對於路由篇感興趣的話能夠閱讀一下Vue路由篇,有什麼不足的地方或有好的想法,歡迎在評論下方留言!廢話很少說,咱們開搞!vue
以vue-cli爲例子,當咱們搭好腳手架的時候,咱們能夠經過npm
下載Vuex
vuex
npm install vuex --save
vue-cli
在src
文件夾下建立store
文件,在store
文件下建立index.js
導入Vuexnpm
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
const store = new Vuex.Store({
<!--模塊入口-->
modules: {
},
<!--嚴格模式-->
strict: process.env.NODE_ENV !== 'production'
});
export default store;
複製代碼
在src - main.js
引入store - index.js
數組
import store from './store/index';
new Vue({
el: '#app',
store,
components: { App },
template: '<App/>'
});
複製代碼
store
文件下建立modules
文件夾,在modules
文件夾下建立屬於本身的文件夾例如: bash
在你的文件夾下寫一個測試文件,目的是測試一下,是否有效,在這裏我建立一個文件dome.js
const state = {
Felix: {
a: "Felix"
}, //測試
}
const getters = {
getTest(state) {
return state.Felix;
}
}
const mutations = {
changTest(state, value) {
state.Felix = value
}
}
const actions = {
// 異步方法
actionTest(context, value) {
// 異步改變對話框的狀態
context.commit(changTest, value)
}
}
export default {
namespaced: true, //用於在全局引用此文件裏的方法時標識這一個的文件名
state,
getters,
mutations,
actions
}
複製代碼
store
文件下建立public
文件夾,在public
文件夾下建立屬於的文件入口好比說個人是Felix.js
,用來管理到時候你本身的文件,導入咱們剛剛寫好的dome.js
import demo from '../modules/Felix/demo'
const Felix = {
...demo
}
export default Felix;
複製代碼
src - store.js
導入public - Felix.js
文件import Vue from 'vue';
import Vuex from 'vuex';
import Felix from './public/Felix'
Vue.use(Vuex);
const store = new Vuex.Store({
modules: {
Felix
},
strict: process.env.NODE_ENV !== 'production'
});
export default store;
複製代碼
<template>
<div id="HelloWorld">
<span>{{test}}</span>
<button @click="changTest('5555')">改變test方法</button>
</div>
</template>
<script>
import { mapState, mapGetters, mapMutations, mapActions } from "vuex";
export default {
data() {
return {};
},
computed: {
// 獲取狀態倉庫的batch
<!--mapGetters("文件夾名稱",數組|對象)-->
...mapGetters("Felix", {
test: "getTest"
}),
},
methods: {
<!--mapGetters("文件夾名稱",數組|對象)-->
<!--數組寫法-->
...mapMutations("Felix", ["changTest"])
<!--對象寫法-->
<!--注意,調用方法是調用changValue而不是changTest-->
// ...mapMutations("Felix", {
// changValue: "changTest"
// })
},
mounted() {
console.log(this.test); //{a: "Felix"}
}
};
</script>
複製代碼
這樣咱們就把Vuex模塊化處理已經完成!app
謝謝你們!但願能對大家有所幫助,有什麼問題能夠在評論下方提出,期待有更好的解決方案,學習一下!我下篇可能會寫關於Vue+TS的文章,敬請期待!dom
請勿未經容許轉載,謝謝合做
異步
聯繫我:652165177(QQ)
模塊化