码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Vue中的异步组件


    异步组件是对网站的一种优化,其意思就是懒加载,当我们需要用到那个组件的时候才去打包挂载到DOM树上。

    为什么要这样设计呢?

    一个网站的开发是由非常多的组件构成,如果当我们在打开网页的时候,突然一下子把这些所有的组件加载上来,这么多的请求全部同时开始请求,势必会造成网页打开很慢,使客户得到的是非常差劲的体验。而且一个网站有很多个网页当我们冲浪时,有很多网页我们可能都不会去打开,所以也没有必要加载。

    异步加载组件:用不到的组件不会加载,因此网页打开速度会很快,当你用到这个组件的时候,才会通过异步请求进行加载;

    组件缓存起来:通过异步加载的组件会缓存起来,当你下一次再用到这个组件时,丝毫不会有任何的疑迟,组件很快会从缓存中加载出来。

    这里介绍三种异步加载方法:

    一、通过webpack2.0的按需加载

     //注册组件时
    components:{
        //首次挂载需要用到的组件直接导入注册
        Box1:Box1,
        Box2:Box2,
        //当首次加载用不到组件时,不用导入直接按照以下采取处理
        Box3:function(resolve){
            require(['./Box3.vue'], resolve)//[]中为组件Box3.vue的路径
        }
    }

    二、通过webpack2+es2015返回一个promise(主流 )

    //注册组件时
    components:{
        //首次挂载需要用到的组件直接导入注册
        Box1:Box1,
        Box2:Box2,
        //当首次加载用不到组件时,不用导入直接按照以下采取处理
        Box3:()=>import('./Box3.vue')//括号中为路径位置,import()返回promise对象
    }

     

    三、高级异步组件(可以处理加载状态)

    常常用在路由中使用,vue 2.3.0+ 新增终极解决方案,要求路由2.4.0+

    //注册组件时
    components:{
        //首次挂载需要用到的组件直接导入注册
        Box1:Box1,
        Box2:Box2,
        //当首次加载用不到组件时,不用导入直接按照以下采取处理
        Box3:() => ({
      // 需要加载的组件 (这个 `import` 函数会返回一个 `Promise` 对象。)
      component: import('./Box3.vue'),
      // 异步组件加载时使用的组件
      loading: LoadingComponent,
      // 加载失败时使用的组件
      error: ErrorComponent,
      // 展示加载时组件的延时时间。默认值是 200 (毫秒)
      delay: 200,
      // 超时时间,如果提供了超时时间且组件加载也超时了,
      // 则使用加载失败时使用的组件。默认值是:`Infinity`
      timeout: 3000
    })
    }

     其中LoadingComponent和ErrorComponent组件需要我们自己手动创建配置,命名也可以任意命名。

  • 相关阅读:
    spring中基础核心接口总结
    Vuex——笔试题、Vuex简介、引入方式、State、Getter、Mutation、Action、Module
    【负优化】如何理解Android手机系统升级时,反而“负优化”? | 附:国产AI大模型列表 | 人的真实注意力相关:为什么有时候一直看一个汉字,反而感觉不认识这个汉字了呢?
    计算机网络学习笔记(5.传输层 6.应用层)
    推荐系统 | 基础推荐模型 | 特征交叉 | FM | FFM | PyTorch实现
    jmh测试实践(针对不同准备数据测试)
    openMVS
    WiFi基础学习到实战(二:WiFi网络“数据链路层”)
    怎么让孩子树立时间观念
    【Linux驱动开发】设备树详解(二)设备树语法详解
  • 原文地址:https://blog.csdn.net/m0_59345890/article/details/126774772
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号