本文首发: https://shudong.wang/10415.html

场景
当在vuex的modules全部需要加载的时候
rematch的 models 需要全部加载的时候
在某些场景

2019-07-30-17-09-52

每个再需要手动引入到 状态管理里面,我们可以做下面的优化处理

loader.js

/**
 * @author stark.wang
 * @blog http://shudong.wang
 * The file enables `models` to import all models
 * in a one-shot manner. There should not be any reason to edit this file.
 */
const files = require.context('./models', false, /\.js$/)
const models = {}
files.keys().forEach(key => {
  const filename = key.replace(/(\.\/|\.js)/g, '')
  models[filename] = files(key)['default']
})
export default models

在rematch使用

import models from './loader'
init({
    plugins: [loadingPlugin],
    models
})

在vuex里面使用

import Vue from 'vue'
import Vuex from 'vuex'
import modules from './loader'

Vue.use(Vuex)

const debug = process.env.NODE_ENV !== 'production'

export default new Vuex.Store({
  modules,
  strict: debug
})

西树先森
7.1k 声望926 粉丝

从事开发多年,前端、后端(go、Python、php)、服务架构都有涉猎,经历过大公司、创业公司,擅长前端及公司技术选型。