zoukankan      html  css  js  c++  java
  • dva webpack 利用require.context加载多个model

    dva redux数据管理都在models,根据业务不同models可能会有几十甚至上百的 【模块.js】,

    每次在index.js使用 app.model(require('./models/example').default);  引入 Model 可能要写多个,

    那么如何优雅的扩展model,不去重复的require model呢,利用 require.context就可以做到。

    require.context是什么

    你可以使用该require.context()函数创建自己的上下文

    它允许您传入一个目录进行搜索,一个标志指示是否应该搜索子目录,还有一个正则表达式来匹配文件。

    webpack require.context()构建时解析代码

    语法如下:

    require.context(directory, useSubdirectories = false, regExp = /^.//);

    directory 目录,如当前目录下的test: './test' useSubdirectories是否使用子目录, regExp 正则匹配test文件夹下的文件 如匹配js文件 /.js$/

    如下 取出当前目录下的js文件,并过滤掉index.js文件,再用map遍历文件名,context返回default方法:

    const context = require.context('./', false, /.js$/);
    export default context
      .keys()
      .filter(item => item !== './index.js')
      .map(key => context(key));

    index.js文件引用models:

    require('./models').default.forEach(key => {
      app.model(key.default);
    });

    其他使用是一样的,只是不用一个个去require模块了。

  • 相关阅读:
    NOIP 2016 提高组 复赛 Day2T1==洛谷2822 组合数问题
    Codevs 1710 == POJ 1190 生日蛋糕 == 洛谷P1731
    [网络流24题] COGS 750 栅格网络流
    [网络流24题] COGS 运输问题1
    狂K 线段树
    Graph coloring技能树
    智能体大赛酱油记
    graph coloring学习记录
    湖北省赛酱油记
    CCCC酱油记
  • 原文地址:https://www.cnblogs.com/juexin/p/9401078.html
Copyright © 2011-2022 走看看