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
相关文章
相关标签/搜索