【VUEX】数据持久化处理 vuex-persist
安装 vuex-persist,
安装:yarn add vuex-persist
使用:import VuexPersistence from 'vuex-persist'
目录结构:
1.在index文件中引入getters和VuexPersistence
1 import Vue from 'vue' 2 import Vuex from 'vuex' 3 import getters from './getters' 4 import VuexPersistence from 'vuex-persist'; 5 6 Vue.use(Vuex)
getters:
2. 处理modules
1 const modulesFiles = require.context('./modules', true, /\.js$/) 2 const path = require('path'); 3 const modules = {}; 4 modulesFiles.keys().forEach((val, idx) => { 5 const name = path.basename(val, '.js'); 6 modules[name] = modulesFiles(val).default 7 })
pageData.js文件
3. 在index文件中抛出Store,添加vuex-persist的调用
1 const store = new Vuex.Store({ 2 modules, 3 getters, 4 strict: false, 5 plugins: [vuexSession.plugin] 6 }); 7 8 export default store
plugins:
4. 在VUE文件中使用
import { mapGetters } from 'vuex'
1 computed: { 2 ...mapGetters([ 3 'getComFlag' 4 ]) 5 },
关于对于数据模块化处理用到的两个方法:
A: basename
用法:
var path = require('path');
path.basename(要处理的字符,要屏蔽的字符)
B: require context()
用法:
接受三个参数(require.context(directory,useSubdirectories,regExp))
directory:说明需要检索的目录
useSubdirectories:是否检索子目录
regExp: 匹配文件的正则表达式,一般是文件名
返回参数
require.context返回一个require 函数,此函数可以接收一个参数
返回的函数:function webpackContext(req) {return __webpack_require__(webpackContextResolve(req))};
函数有三个属性:resolve 、keys、id
· resolve: 是一个函数,他返回的是被解析模块的id ,接受一个参数request。
· keys: 也是一个函数,他返回的是一个数组,该数组是由所有可能被上下文模块解析的请求对象组成
· id:上下文模块的id
所以本例中modulesFiels()返回结果如下: