本文摘自PHP中文网,作者不言,侵删。
本篇文章给大家带来的内容是关于require.context的用法介绍(附示例) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
起因:为什么会突然用到webpack这个管理特性呢?
项目某个页面需要引入N张demo图片。即资源的批量引入:如果要引入10+个以上的图片资源,就需要写10+个如下的引入代码:import XXX from 'relative/path/assets/imgs/xxx';,那如果再多一点的静态资源需要引入呢?这时候require.context就派上了用场。
文档
官方文档的介绍先放在这里,可小觑一下,了解使用姿势。
栗子来一个
话不多说,针对上面的场景,我们上一下代码吧。
场景需要我们引入某个指定文件夹下的所有webp格式的图片,在单击demo1的时候展示demo1下的x张案例图,在单击demoX的时候展示demoX下的x张案例图。
1
2
3
4
5
6
7
8
const
demoImgsContext =
require
.context(
'@src/assets/imgs/demo'
, false, /\.webp$/);
...
trigger(type) {
this.demoImgs = Arry.from({length: config.type}, (key, value) => value + 1)
.map(index => demoImgsContext(`./${type}_demo${index}.webp`));
}
举一反三的场景还有需要的么? 比如vuex引入多个module的store。也可以使用这个方法。
1
2
3
4
5
6
7
8
9
10
const
mutationContext =
require
.context(
'./module'
, false, /.*\.js/);
const
modules = mutationContext.keys().reduce((prev, cur) => {
const
matches = cur.match(/module_(?!.*root)(\w+)\.js/);
const
key = matches && matches[1];
key && (prev[key] = mutationContext(cur).
default
);
return
prev;
}, {});
接下来,让我们看一下,require.context是如何做到动态引入资源的呢?
看下打包后的dist目录下,我们的静态图片案例chunk这个部分的代码是啥样的。
阅读剩余部分
相关阅读 >>
浅谈动态导入ecmascript模块的方法
javascript怎么实现验证码倒计时
详解js中的continue和break语法的差异
javascript怎么将字母转为小写
javascript中怎么换行
学javascript要什么基础?
javascript如何删除对象属性
一文谈谈javascript和ecmascript的关系
javascript的3种注释写法为什么
javascript现继承的四种方式(代码示例)
更多相关阅读请进入《webpack 》频道 >>
¥83.86元 人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » require.context的用法介绍(附示例)