异步组件的使用


异步组件的使用

https://v2.cn.vuejs.org/v2/guide/components-dynamic-async.html#%E5%BC%82%E6%AD%A5%E7%BB%84%E4%BB%B6

我们知道VUE构建的是一个单页面应用,那么就会导致其首屏加载慢。那么我们可以使用异步组件让webpack分chunk使得页面

1.普通的加载

我们先来看一下普通的加载是怎样

1.1 加载的组件:

加载的组件

1.2 静态加载:

注意此时为“import List from ‘./List’”是静态加载的

静态加载

1.3 结果:

点击按钮显示“这是一个列表的内容”,但是发现控制台没有新的JS加载,也就是说早已经加载好了

2. 异步组件

2.1 简单使用

使用webpack(不能使用变量引入) + es2022 动态引入(import)

注意里面的注释可以修改chunkName,可查看控制台
异步组件

发现结果变了

异步组件

2.2 更细致的写法

定制异步组件的加载中和错误

(1)定义

错误组件和加载组件也需要定义,这里不多赘述

(2)引入

3. 其它方法

以上方法使用的是webpackh2.0和es2020import()方法,此外还可以使用工厂函数来定义组件,

也就是异步组件开头介绍的方法,但这不是推荐的

Vue.component('async-example', function (resolve, reject) {
    //可以像服务器获取,根据实际需要决定
    
    //模拟异步获取
  setTimeout(function () {

    // 向 `resolve` 回调传递组件定义 data template
    resolve({
      template: '<div>I am async!</div>'
    })
  }, 1000)
})

文章作者: iamfugui
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 iamfugui !
评论
  目录