【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()返回结果如下:

 

posted @ 2020-08-21 11:30  行屰  阅读(475)  评论(0编辑  收藏  举报