vue.js 组件

组件(Component)是 Vue.js 最强大的功能之一。

组件可以扩展 HTML 元素,封装可重用的代码。

在大型单页面应用中,处于对性能的考虑和首屏加载速度的要求,我们一般都会使用webpack的代码分割和vue-router的路由懒加载功能将我们的代码分成一个个模块,并且只在需要的时候才从服务器加载一个模块。

但是这种解决方案也有其问题,当网络环境较差时,我们去首次访问某个路由模块,由于加载该模块的资源需要一定的时间,那么该段时间内,我们的应用就会处于无响应的状态,用户体验极差。

解决方案

这种情况,我们一方面可以缩小路由模块代码的体积,静态资源使用cdn存储等方式缩短加载时间,另一方面则可以路由组件上使用异步组件,显示loading和error等状态,使用户能够得到清晰明了的操作反馈。

具体实现

声明方法,基于Vue动态组件工厂函数来返回一个Promise对象

({

// 需要加载的组件 (应该是一个 `Promise` 对象)

component: AsyncView,// 异步组件加载时使用的组件

loading: require('@/components/public/RouteLoading.vue').default,// 加载失败时使用的组件

error: require('@/components/public/RouteError.vue').default,// 展示加载时组件的延时时间。默认值是 200 (毫秒)

delay: 200,// 如果提供了超时时间且组件加载也超时了,

// 则使用加载失败时使用的组件。默认值是:`Infinity`

timeout: 10000

});

return Promise.resolve({

functional: true,render (h,{ data,children }) {

return h(AsyncHandler,data,children);

}

});

}

引入路由

lazyLoadView(import('@/components/helloWorld'))

vue-router中使用

routes: [

{

path: '/helloWorld',name: 'helloWorld',component: helloWorld

}

]

至此,改造已经完成,当你首次加载某一个组件的资源时(可以将网速调为 slow 3g,效果更明显),就会显示你在loading组件的内容,而当超出超时时间仍未加载完成该组件时,那么将显示error组件的内容(建议error组件尽量简单,因为当处于低速网络或者断网情况下时,error组件内的图片资源等有可能出现无法加载的问题)

总结

以上所述是小编给大家介绍的Vue异步组件处理路由组件加载状态的解决方案。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持。

vue 如何处理两个组件异步问题_Vue异步组件处理路由组件加载状态的解决方案...相关推荐

  1. Vue—核心概念—异步组件和路由懒加载

    原文地址:Vue 异步组件&路由懒加载 目录 异步组件 异步组件介绍 异步组件声明 高级异步组件 路由懒加载 路由懒加载介绍 路由懒加载方法 把组件按组分块 异步组件 异步组件介绍 在开发大型 ...

  2. 前端学习(2742):重读vue电商网站52之路由懒加载

    当打包构建项目时,JavaScript 包会变得非常大,影响页面加载.如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了. 具体需要 3 步: 安 ...

  3. 性能优化---vue路由懒加载和异步组件

    1.路由懒加载 整个网页默认是刚打开就去加载所有页面,路由懒加载就是只加载你当前点击的那个模块. 实现方式有: 1.require:加载组件. component: resolve => req ...

  4. VUE路由懒加载的方式——VUE异步组件

    学了vue写项目这么久,忽然发现路由懒加载的写法,节省了加载所有路由的时间. 如图所示: 我们一开始用ES6的写法,在路由文件router/index.js中引入所有路由要用到的组件,然后在每个路由对 ...

  5. vue路由懒加载的两种方式

    1.当一个vue项目很大的时候,对于一些"暂时"用不到的组件,我们可以不进行加载,等到用到次组件时再加载.这样可以优化spa应用首次加载白屏情况,也给用户更好的体验.这样就是vue ...

  6. vue 加载太慢_Vue首页加载过慢 解决方案

    一.什么导致了首页初步加载过慢:app.js文件体积过大 二.解决方法: 1.Vue-router懒加载 vue-router懒加载可以解决首次加载资源过多导致的速度缓慢问题:vue-router支持 ...

  7. Vue 路由懒加载

    路由和组件的常用两种懒加载方式: 1.vue异步组件实现路由懒加载 component:resolve=>(['需要加载的路由的地址',resolve]) 2.es提出的import(推荐使用这 ...

  8. vue路由懒加载resolve方式与import方式

    使用路由懒加载是为了 更好的用户体验,首屏组件加载的速度快一点,解决了白屏的问题 懒加载就是延迟加载或者屎按需加载,在需要的时候进行加载 常用的懒加载有两种,vue异步组件和es的import 1.未 ...

  9. Vue iView Admin 动态路由菜单加载 前后端分离(springboot 2.x iview admin vue 前后端分离 模型设计器 动态数据权限...

    宣传官网 xb.exrick.cn 在线Demo xboot.exrick.cn 开源版Github地址 github.com/Exrick/x-bo- 开发文档 www.kancloud.cn/ex ...

最新文章

  1. windows下增加python的库搜索路径
  2. 查看node状态_第六章 无限可能,神器降临——Node-RED
  3. delphi7下调用微软的Web Services的心得
  4. 如何使用SAP Cloud for Customer OData服务创建Lead
  5. mysql数据库存储引擎和索引的描述_Mysql InnoDB引擎的索引与存储结构详解
  6. @程序员,早知道假期这样你会干什么?
  7. C 语言 结构类型 结构
  8. HTML5权威指南pdf
  9. 拓扑排序以及求解关键路径
  10. Thinkpad E430c 无线开关
  11. asterisk meetme 会议实现
  12. react ant-design自定义图标
  13. 【踩坑记录】priority_queue 第三个模板参数和sort 的第三个形参的区别;仿函数、自定义排序函数、lambda 函数分别传入;传入类型和对象的区别;
  14. Kruskal理解+代码解析
  15. HDMI差分对走线是否需要走等长
  16. 日志异常检测-机器学习
  17. 单链表的算法之尾部插入节点
  18. matlab 欧拉角 方向余弦,旋转矩阵、欧拉角之间转换
  19. 基于MSP430F149操作数字电位器ISL23425WFVZ
  20. 医疗器械供应链企业医疗器械管理软件发展,得出什么答案?

热门文章

  1. MTK:文件操作接口详解
  2. JAVA:泛型通配符T,E,K,V区别,T以及Class,Class的区别
  3. 用python直接调用asr技术_python中asr
  4. python len函数_你需要了解的最重要的Python概念
  5. 管家婆 源码 php,在windows平台上构建本身的PHP
  6. python中定义类的关键字_在Python中,定义一个类使用什么关键字?
  7. c++ 写x64汇编 5参数_第9篇-C/C++ x86_64的函数栈
  8. 找出数组的最大公约数
  9. MySQL多个条件更新多个字段
  10. 分布式一致性算法-paxos详解与分析