异步组件的使用(webpack 代码分包)示例 suspense插槽

news/2024/4/19 17:24:43/文章来源:https://blog.csdn.net/weixin_57998947/article/details/129175781

提示:异步组件的使用

文章目录

  • 一、webpack默认打包过程?
  • 二、异步组件的使用过程
    • 1.在项目中src文件加下 创建文件夹(异步组件的使用) ---> App.vue 和Home.vue 和AsyncCategory.vue
    • 2.在main.js中使用 import 引入 (异步组件的使用)这个文件下的App.vue
    • 3.在项目中src文件加下 创建文件夹(异步组件的使用) ---> 创建文件夹 (utils) --> muth.js

提示:以下是本篇文章正文内容,下面案例可供参考

一、webpack默认打包过程?

  • 默认情况下,在构建整个组件树的过程中,因为组件和组件之间是通过模块化直接依赖的,那么webpack在打包时就会将组件模块打包到一起(比如一个app,js文件中 ) ;
  • 这个时候随着项目的不断庞大,app.js文件的内容过大,会造成首屏的渲染速度变慢

基于webpack打包 npm run build 生成 dist 文件 有有个js文件 有app.哈希值.js chunk.windors.哈希值.js :第三方

二、异步组件的使用过程

1.在项目中src文件加下 创建文件夹(异步组件的使用) —> App.vue 和Home.vue 和AsyncCategory.vue

app.vue代码如下(示例):

   <templete><div>app组件<home></home><async-category /><div></templete>

如果我们的项目过大了,对于某些组件我们希望通过异步的方式来进行加载(目的是可以对其进行分包处理么Vue中给我们提供了一个函数:defineAsyncComponent。 defineAsyncComponent接受两种类型的参数: 类型一工厂函数,该工厂函数需要返回一个Promise对象口 类型二:接受一个对象类型,对异步函数进行配置;

<script>//vue3写法  webpack打包会将AsyncCategory.vue打包到分包里面  需要时才会显示  优化首屏渲染进度
import { defineAsyncComponent } from ' vue' ;
const  AsyncCategory  = defineAsyncComponent (()=> import ('./AsyncCategory.vue'))
//或者
const  AsyncCategory  = defineAsyncComponent ({loader:() =>import ('./AsyncCategory.vue'),loadingComponent:Loading,  //会一闪而过 暂备组件  AsyncCategory 未加载会先显示 Loading 组件//errorComponent,  未加载成功delay:2000,  //延迟  在显示loadingComponent 组件之前 等待多长时间onError :function(err,retry,attempts) {// err 错误信息//retry 函数  调用retry重新加载//attempts 记录尝试次数}
})import Loading from "./Loading.vue"import Home from "./home.vue"import AsyncCategory from './AsyncCategory.vue'  //这里也会打包到app.js中 不优化首屏渲染进度export default  {components : {Home,AsyncCategory }
}
<script>

2.在main.js中使用 import 引入 (异步组件的使用)这个文件下的App.vue

代码如下(示例):

  import App from './异步组件的使用/App.vue'import {sum } from './异步组件的使用/utils/math' //会打包app.js中//可以单独打包//通过import函数 导入的模块   //后续webpack对其进行打包的时候就会进行分包的操作import('./异步组件的使用/utils/math').then(res=>{console.log(res.sum(20,20))})console.log(sum(20,20))

3.在项目中src文件加下 创建文件夹(异步组件的使用) —> 创建文件夹 (utils) --> muth.js

 export function sum (num1,num2) {return num1+num2}

想对AsyncCategory.vue异步组件进行分包

   <templete><div>AsyncCategory组件<h2> {{message}}</h2><div></templete>
<script>export default  {data(){return  { message :'hello Category'}}
}
<script>

suspense插槽

app.vue代码如下(示例):

   <templete><div>app组件<home></home><suspense><template #default><async-category /></template><template #fallback><loading /></template></suspense><div></templete>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_73184.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DC220V冲击继电器RCJ-3

系列型号 RCJ-2型冲击继电器&#xff1b; RCJ-2/48VDC冲击继电器 RCJ-2/110VDC冲击继电器 RCJ-2/220VDC冲击继电器 RCJ-2/100VAC冲击继电器 RCJ-2/127VAC冲击继电器 RCJ-2/220VAC冲击继电器 RCJ-3/220VAC冲击继电器 RCJ-3型冲击继电器 RCJ-3/127VAC冲击继电器 RCJ-3/100VAC冲…

FastCGI sent in stderr: "PHP message: PHP Fatal error

服务器php7.2卸载安装7.4之后,打开网站一直无法访问,查看nginx错误日志发现一直报这个错误:2023/02/23 11:12:55 [error] 4735#0: *21 FastCGI sent in stderr: &#xff02;PHP message: PHP Fatal error: Uncaught ReflectionException: Class translator does not exist in …

Python四大主题之一【 Web】 编程框架

目前Python的网络编程框架已经多达几十个&#xff0c;逐个学习它们显然不现实。但这些框架在系统架构和运行环境中有很多共通之处&#xff0c;本文带领读者学习基于Python网络框架开发的常用知识,及目前的4种主流Python网络框架&#xff1a;Django、Tornado、Flask、Twisted。 …

100%BIM学员的疑惑:不会CAD可以学Revit吗?

在新一轮科技创新和产业变革中&#xff0c;信息化与建筑业的融合发展已成为建筑业发展的方向&#xff0c;将对建筑业发展带来战略性和全局性的影响。 建筑业是传统产业&#xff0c;推动建筑业科技创新&#xff0c;加快推进信息化发展&#xff0c;激发创新活力&#xff0c;培育…

web客户端-websocket

1、websocket简介 WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议。 WebSocket使得客户端和服务器之间的数据交换变得更加简单&#xff0c;允许服务端主动向客户端推送数据。在WebSocket API中&#xff0c;浏览器和服务器只需要完成一次握手&#xff0c…

python3.11.2安装 + pycharm安装

下载 &#xff1a;https://www.python.org/ 2.双击下载的软件&#xff1a; 3.进入安装界面 下一步&#xff0c;点击 是 上一步点击后就看到如下&#xff1a; 安装成功了&#xff0c;接下来检测一下&#xff1a;cmd 安装pycharm PyCharm是一种Python IDE&#xff08;Integr…

Apifox-比postman更优秀的接口自动化测试平台

一、Apifox介绍 Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台&#xff0c;定位 Postman Swagger Mock JMeter。通过一套系统、一份数据&#xff0c;解决多个系统之间的数据同步问题。只要定义好 API 文档&#xff0c;API 调试、API 数据 Mock、A…

你真的需要文档管理软件吗?

什么是文档管理软件&#xff1f; 文档管理软件 (DMS) 是一种数字解决方案&#xff0c;可帮助组织处理、捕获、存储、管理和跟踪文档。 通过严格管理您的关键业务信息&#xff0c;您可以开发以稳定、可预测、可衡量的方式启动、执行和完成的流程。 如果没有功能齐全的文档管理软…

从事Python自动化测试,30岁熬到月薪20K+,分享我的多年面试经…

年少不懂面试经&#xff0c;读懂已是测试人。 大家好&#xff0c;我是小码哥&#xff0c;一名历经沧桑&#xff0c;看透互联网行业百态的测试从业者&#xff0c;经过数年的勤学苦练&#xff0c;精钻深研究&#xff0c;终于从初出茅庐的职场新手成长为现在的测试老鸟&#xff0…

zabbix4.0安装部署

目录 1.1、添加 Zabbix 软件仓库 1.2、安装 Server/proxy/前端 1.3、创建数据库 1.4、导入数据 1.5、为 Zabbix server/proxy 配置数据库 1.6、 启动 Zabbix server 进程 1.7、zabbix前端配置 SELinux 配置 1.8、安装 Agent 1.9、启动zabbix 2.0、访问zabbix 1.1、添加…

ThinkPHP ^6图片操作进阶

图片裁剪、缩略、水印不再是TP框架系统内置的功能&#xff0c;需要安装。 目录 安装 图片处理 1.创建图片对象 2.获取图片属性 3.裁剪图像 4.生成缩略图 6.保存图像 7.水印 安装 使用composer在项目根目录打开命令行执行&#xff1a; composer require topthink/think…

mybatis-plus分页方式

拦截器(分页插件) 一 方式1&#xff1a;XxxMapper.selectPage 1 selectPage(page, null) 概述 MyBatisPlus中提供的&#xff08;自带的&#xff09;分页插件&#xff0c;非常简单&#xff0c;只需要简单的配置就可以实现分页功能。详细步骤&#xff1a; 第一步&#xff1a;&…

【Tips】通过背数据了解业务

学习资料&#xff1a;做了三年数据分析&#xff0c;给你的几点建议 1. 通过背数据了解业务 原文&#xff1a; 总结&#xff1a; 方法&#xff1a;每天早上去到公司第一件事情就是先背一遍最新的各种指标。原理&#xff1a; 数据敏感性就是建立在对数据的了解和熟悉上。业务的…

一文带你了解排序算法

排序算法平均时间复杂度冒泡排序O(n2)选择排序O(n2)插入排序O(n2)希尔排序O(n1.5)快速排序O(N*logN)归并排序O(N*logN)堆排序O(N*logN)基数排序O(d(nr)) 一. 冒泡排序(BubbleSort) 1、基本思想&#xff1a;两个数比较大小&#xff0c;较大的数下沉&#xff0c;较小的数冒起来。…

Spring boot开启定时任务的三种方式(内含源代码+sql文件)

Spring boot开启定时任务的三种方式&#xff08;内含源代码sql文件&#xff09; 源代码sql文件下载链接地址&#xff1a;https://download.csdn.net/download/weixin_46411355/87486580 目录Spring boot开启定时任务的三种方式&#xff08;内含源代码sql文件&#xff09;源代码…

FreeRTOS入门(02):任务基础使用与说明

文章目录目的创建任务任务调度任务控制延时函数任务句柄获取与修改任务优先级删除任务挂起与恢复任务强制任务离开阻塞状态空闲任务总结目的 任务&#xff08;Task&#xff09;是FreeRTOS中供用户使用的最核心的功能&#xff0c;本文将介绍任务创建与使用相关的基础内容。 本…

Tina_Linux_启动优化_开发指南

文章目录Tina_Linux_启动优化_开发指南1 概述2 启动速度优化简介2.1 启动流程2.2 测量方法2.2.1 printk time2.2.2 initcall_debug2.2.3 bootgraph.2.2.4 bootchart2.2.5 gpio 示波器.2.2.6 grabserial.2.3 优化方法2.3.1 boot0启动优化2.3.1.1 非安全启动.2.3.1.2 安全启动2.3…

关于selenium的等待

目录 隐式等待 显式等待 注意事项 隐式等待 简单来说&#xff1a;在规定的时间范围内&#xff0c;轮询等待元素出现之后就立即结束。 如果在规定的时间范围内&#xff0c;元素仍然没有出现&#xff0c;则会抛出一个异常【NoSuchElementException】&#xff0c;脚本停止运行…

2023上半年软考各省份报名时间已公布!

截止至目前&#xff0c;共有2个省市公布了2023上半年软考报名时间&#xff0c;一起来看看吧~ 一、2023上半年软考考试事项 分数线&#xff1a;所有科目成绩全部在45分以上&#xff08;含45分&#xff09;通过考试&#xff1b; 出成绩时间&#xff1a;预计在7月中旬&#xff1…

企业知识管理常见的误区及解决方案

在企业信息化的背景下&#xff0c;越来越多的首席信息官&#xff08;CIO&#xff09;承担着促进组织知识管理实施的责任。然而&#xff0c;从实践的角度来看&#xff0c;虽然我国大多数知识管理实施项目都取得了一定的成果&#xff0c;但与预期有很大的不同&#xff0c;甚至许多…