vuex祕籍

vue項目開發中,大型項目通常vuex所須要存儲的狀態通常都很都,這時,咱們便須要進性模塊化劃分,而後 再頁面中採用映射來實現state的調用:
目錄通常以下:

 

store爲總的狀態庫存放文件。
modules爲狀態庫的模塊化劃分。
getters爲全部的state中的變量的一個映射
index爲vuex的一個入口文件
這裏如今有這樣一個需求:
首頁引入header組件和側邊欄組件,頭部組件動態控制側邊欄的現實和隱藏。經過改變vuex狀態來實現
aslide狀態以下:
const aslide = { 
    state: { 
        isShow: false
         },
    mutations: { 
        changeStatus: function (state) { 
            let isShow = !state.isShow; 
            state.isShow = isShow; 
        } 
    }
}
export default aslide;

 

下來再getters中添加映射
const getters = { 
    // 側邊欄 isShow: state = > state.aslide.isShow 
}; 
export default getters;

 

下來,經過主入口文件引入全部的狀態庫模塊,而後導出
import Vue from "vue"; 
import Vuex from "vuex"; 
import aslide from "./modules/aslide"; 
import getters from "./getters"; 
Vue.use(Vuex); 
const store = new Vuex.Store({
    modules: {
        aslide 
    },
    getters 
})
export default store

 

最後一步:
main.js
// The Vue build version to load with the `import` command 
// (runtime-only or standalone) has been set in webpack.base.conf with an alias. 
import Vue from 'vue' 
import App from './App' 
import router from './router' 
import store from "./store" 
Vue.config.productionTip = false; 
// 全局路由返回,再頁面返回上級頁面時,能夠經過調用back方法返回上級頁面 
Vue.prototype.back = (route) = > { 
    route.animate = 2; //設置路由返回頁面的動畫方式
    window.history.go(-1); //返回一級頁面 
};
// 引入Mint-ui所有組件 
import MintUI from 'mint-ui' 
import 'mint-ui/lib/style.css' 
Vue.use(MintUI); 
/*公共樣式引入*/ 
import './styles/index.css' 
/*工具類*/ import './utils/rem.js' 
import Utils from './utils/common.js'; 
const utils = new Utils(); 
Vue.prototype.$utils = utils; 
/* eslint-disable no-new */ 
new Vue({ 
    el: '#app', 
    router, 
    store, 
    components: { App }, 
    template: '<App/>' 
})

 

下來,咱們針對vuex進行基本的調用
修改,調用vuex中的方法,咱們仍是和平時同樣,詳情見vuex一,二,三,總結
this.$store.commit('changeStatus');
如何調用vuex中state中的變量呢?
import { mapGetters } from 'vuex'
computed: {
    ...mapGetters([
        'isShow'
    ])
},
...mapGetters能夠說是將狀態庫中的全部的state中的變量混入到computed中以便實時監聽。
咱們就能夠再created以後經過console.log(this.isShow)獲取狀態,就能夠直接再頁面中使用
 
下來咱們公共樣式及工具的全局設置

 

你們能夠看到styles和utils,這兩個文件能夠說是本身對樣式的一個封裝和方法的一個封裝。
具體文件,再每一個項目中 ,你們均可以用獲得,使用得當,能夠很大程度上減小開發的時間
你們再styles建立入口文件index.css
@import 'css/common.css';
@import './css/function.css';
@import './css/phone-reset.css';
關鍵 是配置main.js上面已經有main.js,能夠查看上述main.js。
而後咱們就能夠直接再頁面中使用樣式 好比再類名中添加 class="df-c"就是說給該元素添加彈性和並居中
工具的使用呢。咱們能夠經過
mounted () {
let result = this.$utils.isString("sss");
console.log(result);
}
經過this.$utils.方法名  就能夠調用咱們utils中的全部的方法了。
 
注:此頁的實現須要配合博客中
工具類=》js工具類的封裝( http://www.javashuo.com/article/p-mmxhuyhb-w.html
相關文章
相關標籤/搜索