我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vue3 用户体验的增加:异步组件与 Suspense 组件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vue3 用户体验的增加:异步组件与 Suspense 组件

懒加载组件是一种改善应用程序用户体验的简便方法,尤其是在我们的代码包很大或用户连接速度较慢的情况下。

Vue3引入了一些新功能,可通过改进异步组件API和新的Suspense组件来帮助我们实现友好的用户体验。

用户访问应用程序时,无需立即加载UI的某些部分,例如,诸如模态框和工具提示之类的动态UI功能。此外,如果我们使用的是单页面应用程序体系结构,则页面上的内容 看不见的页面也不应加载,直到需要为止。

示例

在此示例应用程序中,我们的应用程序显示一个ChatWindow组件,如果用户经过身份验证,该组件将加载。

我们假设只能在运行时确定身份验证,并且该组件很大。由于这些原因,我们需要要懒加载它。

  1.  
  2.  

 

使用Vue3异步组件API进行懒加载

Vue 3引入了defineAsyncComponent API,所以实现懒加载组件是非常简单的。

defineAsyncComponent 可以接受一个返回 Promise 的工厂函数。Promise 的 resolve 回调应该在服务端返回组件定义后被调用。你也可以调用 reject(reason) 来表示加载失败。

  1.  

 

构建后,任何动态导入的组件都会作为一个单独的文件。

  1. File                                 Size 
  2.  
  3. dist/js/chunk-vendors.f11402df.js    82.39 KiB 
  4. dist/js/app.ada103fb.js              20.59 KiB 
  5. dist/js/ChatWindow.3c1708e4.js       5.47 KiB 
  6. dist/css/app.8221c481.css            1.76 KiB 
  7. dist/css/ChatWindow.f16731cd.css     2.75 KiB 

loading-state 内容

懒加载的缺点是需要团队交流,多次请求造成渲染参差不齐。处理此问题的一种方法加载组件时显示 loading-state组件。

如下图所示,组件在加载时,我们显示一个 loading 画面,加载后在显示加载的组件内容。

defineAsyncComponent 可以接受一个对象:其中有个 loadingComponent 属性,表示加载异步组件时要使用的组件。

 

与 Suspense 一起使用

上面使用loading-state的方法效果是挺好的,但有一点限制。例如,我们可能希望将prop传递到加载状态组件,将内容传递到其插槽等,而使用异步组件API则不容易实现。

为了增加灵活性,我们可以使用Vue3中新出Suspense组件。这使我们能够使用插槽确定模板级别的异步加载内容。

Suspense 是全局组件(例如transition),可以在Vue 3应用程序中的任何位置使用。要使用它,需要在模板中声明它,并包括两个命名的插槽:default和fallback。

Suspense 会确保在加载异步内容时显示默认插槽,并将fallback 插槽用作加载状态。

  1.  
  2.      
  3.       "blue" /> 
  4.      
  5.    
  6.  
  7.  

 

异步组件在默认情况下是可挂起的。这意味着如果它在父链中有一个 ,它将被视为该 的异步依赖。在这种情况下,加载状态将由 控制,组件自身的加载、错误、延迟和超时选项都将被忽略。

异步组件可以选择退出 Suspense 控制,并可以在其选项中指定 suspensible:false,让组件始终控制自己的加载状态。

你可以在 API 参考查看更多可用的选项。

~完,我是小智,去SPA了,下期见!

作者:Matt Maribojoc 译者:前端小智 来源:stackabuse

原文:https://vuejsdevers.com/2020/07/13/vue-async-components-suspense/

本文转载自微信公众号「大迁世界」,可以通过以下二维码关注。转载本文请联系大迁世界公众号。

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vue3 用户体验的增加:异步组件与 Suspense 组件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Vue3 用户体验的增加:异步组件与 Suspense 组件

懒加载组件是一种改善应用程序用户体验的简便方法,尤其是在我们的代码包很大或用户连接速度较慢的情况下。

Vue3异步组件Suspense怎么使用

今天小编给大家分享一下Vue3异步组件Suspense怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Suspense
2023-07-06

Vue3异步组件suspense使用详解

vue在解析我们的组件时,是通过打包成一个js文件,当我们的一个组件引入过多子组件是,页面的首屏加载时间由最后一个组件决定优化的一种方式就是采用异步组件,这篇文章主要介绍了Vue3异步组件suspense,需要的朋友可以参考下
2022-12-28

Vue3异步组件Suspense如何使用

这篇文章主要介绍了Vue3异步组件Suspense如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue3异步组件Suspense如何使用文章都会有所收获,下面我们一起来看看吧。Suspense组件官网中
2023-07-05

Vue3 中的 Suspense:异步组件加载与占位符管理

Suspense 是Vue3响应式系统中的一个重要组成部分,其设计理念源于React社区,并根据Vue生态的特点进行了优化。当Suspense包裹的异步组件还未准备好渲染时,它会显示提供的fallback内容,直到所有异步组件完成加载。

Vue3异步组件Suspense的使用方法详解

这篇文章主要介绍了Vue3异步组件Suspense的使用方法详解,需要的朋友可以参考下
2023-01-28

Vue3中如何使用suspense异步数据加载组件

Vue3中如何使用suspense异步数据加载组件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。前言Vue3 增加了很多让人眼前一亮的特征,suspense 组件就是其中之一,
2023-06-20

Vue 异步组件指南:实现流畅的用户体验

Vue 异步组件指南:助你打造流畅的用户体验
Vue 异步组件指南:实现流畅的用户体验
2024-02-21

15 个用于增强用户体验的 VUE 组件

提升用户体验是网页开发中的关键,Vue 组件库提供了丰富的组件,本文介绍了 15 个可显著增强 Vue 应用程序用户体验的组件。
15 个用于增强用户体验的 VUE 组件
2024-02-28

揭秘 VUE 异步组件的奥秘:优化性能和用户体验

优化 Vue 异步组件的性能和用户体验
揭秘 VUE 异步组件的奥秘:优化性能和用户体验
2024-03-09

Vue3中的异步组件defineAsyncComponentAPI怎么使用

传递工厂函数作为参数defineAsyncComponent方法接收一个工厂函数是它的基本用法,这个工厂函数必须返回一个Promise,Promise的resolve应该返回一个组件。我们这里以VueCli创建的项目为例,这里我稍微做了一下修改,将头部的图片拆分为一个组件,代码如下:importLogoImgfrom'./components/LogoImg.vue'importHelloWorldfrom'./components/HelloWo
2023-05-21

vue3 vite异步组件及路由懒加载怎么应用

一、前言1-1.三点变化:异步组件声明方法的改变:Vue3.x新增一个辅助函数defineAsyncComponent,用来显示声明异步组件异步组件高级声明方法中的component选项更名为loaderloader绑定的组件加载函数不再接收resolve和reject参数,而且必须返回一个Promise1-2.引入辅助函数defineAsyncComponent的原因:现在,在Vue3中,由于函数组件被定义为纯函数,异步组件定义需要通过将其包装在一个新的defineAsyncComponent
2023-05-18

VUE 异步组件的性能优化:减少延时并提升用户体验

异步组件的性能优化:减少延时提升用户体验
VUE 异步组件的性能优化:减少延时并提升用户体验
2024-03-09

VUE 异步组件的秘密武器,解锁流畅前端体验

异步组件是 Vue.js 中的强大工具,可实现平滑且响应迅速的前端体验。通过异步加载组件,不仅可以优化页面性能,还能增强用户交互,让应用程序感觉更流畅。
VUE 异步组件的秘密武器,解锁流畅前端体验
2024-03-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录