Vue中的异步路由、异步组件、懒加载第三方类库

网上说这块的很多,但是没看到有一篇能说全的。这里就说说怎么通过异步和懒加载的形式把首屏代码实现到最小。

注意:首屏的代码不要异步加载,非首屏代码异步加载。不然初始代码加载完成后,还有等运行后再去加载首屏代码,反而拉慢首屏显示。

一、现在异步组件最常见的技术用两种。

1、依赖require

const Editor = resolve => require(['@/views/Editor'], resolve)

2、webpack 2 + ES6

const Editor = () => import('@/views/Editor')

二、下面使用require来实现异步加载

1、异步路由

import indexPage from '@/views/indexPage';
export default new Router({
  routes: [
    {
      path: '/index',
      name: '主页',
      component: indexPage // 首屏代码不要异步加载
    },
    {
      path: '/comment/:iid',
      name: '评论',
      component: resolve => require(['@/views/Editor'], resolve) // 异步加载非首屏页面
    },
  ],
})

2、全局异步组件
可以同时require组件的css,只需要最后resolve传参的是组件

// main.js

Vue.component('swiper', (resolve) => require(['vue-awesome-swiper', 'swiper/dist/css/swiper.css'], ({swiper}) => resolve(swiper)))

3、单个组件内的异步组件

export default {
    name: 'editor',
    components: {
      appBox: resolve => require(['@/components/layout'], resolve)
    },
    ...
}

4、懒加载第三方类库
项目中会用到一些第三方类库,如果类库比较大,而且可以不用第一时间处理,则可以考虑把它懒加载,来加速页面的响应速度

require(['lrz'], (lrz) => {
  lrz(fileInfo, {fieldName: 'imgTp', width: 960, quality: 0.6})
    .then((rst) => {
    })
    .catch((err) => {
      console.log(err);
    })
})
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,806评论 4 61
  • 一 田恬来找我时,我才知道那些流言并非空穴来风。 “今天我又跟周扬表白了,但还是被他拒绝了。” 我莫名其妙地看着田...
    阿畔阅读 4,619评论 29 23
  • “鸡”祥如意的一年刚刚过去,福旺财旺好运旺的新年如约而至。刚刚粗略回顾了一番,好多有意义的事情在脑海浮现,必须抓紧...
    艾小嘉阅读 3,421评论 4 4
  • 在开发过程中我们要学会去模仿苹果的一些用法,这样才能让开发更有效率,更规范。 现在新版本的Xcode 添加起来更方...
    书写不简单阅读 3,355评论 0 1

友情链接更多精彩内容