美文网首页
vue组件中的 component的按需加载

vue组件中的 component的按需加载

作者: 大号火龙果 | 来源:发表于2019-10-23 13:09 被阅读0次

    使用webpack中的require.ensure()函数来实现按需加载

    require.ensure()

    webpack 在编译的时候,会静态的解析代码中的require.ensure(),同时将模块添加到一个分开的chunk(块)中。这个chunk 会被webpack通过jsonp来按需加载。
    语法如下:

    require.ensure(dependencies: String[], callback: function(require), chunkName: String)
    

    依赖 dependencies

    这是一个字符串数组,通过这个参数,在所有的回调函数的代码被执行前,我们可以将所有需要用到的模块进行声明。到打包的时候会将它打包进当前目录中。

    回调 cacllback

    当所有的依赖都 加载完成后,webpack会执行这个函数。require 对象的一个实现会作为一个参数传递给这个回调函数。因此,我们可以进一步的 require()依赖和其他模块提供下一步的执行。
    chunk 名称 chunkName
    chunkName 是提供给这个特定的require.ensure()的chunk的名称。通过提供 require.ensure()不同的执行点相同的名称,我们可以保证所有的依赖都会一起放进相同额度文件束(bundle)

    require.ensure() 的坑点

    空数组作为参数

    require.ensure([], function(require){    require('./a.js');});
    

    以上代码保证了拆分点被创建,而且 a.js 被 webpack 分开打包。

    依赖作为参数

    require.ensure(['./a.js'], function(require) {    require('./b.js');});
    

    上面代码, a.jsb.js 都被打包到一起,而且从主文件束中拆分出来。但只有 b.js 的内容被执行。a.js 的内容仅仅是可被使用,但并没有被输出。

    想去执行 a.js,我们需要异步地引用它,如 require('./a.js'),让它的 JavaScritp 被执行。

    相关文章

      网友评论

          本文标题:vue组件中的 component的按需加载

          本文链接:https://www.haomeiwen.com/subject/pjsmyctx.html