vue动态路由引入和异步组件记录


动态引入的路由组件在打包时路由组件会被单独打包(代码分割 code split),
默认不请求加载路由组件打包文件, 当请求需要路由组件时才请求加载,当引入需要的的组件时在Network会增加一个打包文件(一般为/^\d+.js$/格式)。

引入方式

  • component是一个执行就会import()的函数

    myComponent =  () => import(path)
  • 将组件定义对象(component definition)传递给 resolve 回调函数

    Vue.component(component, (resolve, reject) => {
      setTimeout(() => {
        resolve({
          template: YourTemplate
        })
      }, 100)
    })
  • 使用require引入,这个特殊的 require 语法将指示 webpack 自动将构建后的代码,拆分到不同的 bundle 中,然后通过 Ajax 请求加载。

    Vue.component(component, (resolve) => {
      setTimeOut(() => {
        require(path, resolve);
      }, 100)
    })
  • 使用返回的promiseresolve前import

    - Vue.component(component, (resolve) => {
        setTimeOut(() => {
          import(path).then(resolve);
        }, 100)
      })
    - Vue.component(component, Promise.resolve(template对象))
    - Vue.component(component, Promise.resolveDelay(template对象, time))

文章作者: liheng
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 liheng !
 上一篇
betterScroll踩坑记录 betterScroll踩坑记录
使用BetterScroll刚npm run serve时无法进行滑动,需要修改BetterScroll的源码, 修改BetterSC/shared-utils/src/dom.ts 中的常量hasTouch为true, 这样就可
2020-09-20 liheng
本篇 
vue动态路由引入和异步组件记录 vue动态路由引入和异步组件记录
动态引入的路由组件在打包时路由组件会被单独打包(代码分割 code split),默认不请求加载路由组件打包文件, 当请求需要路由组件时才请求加载,当引入需要的的组件时在Network会增加一个打包文件(一般为/^\d+.js$/格式)。
2020-09-20 liheng
  目录