Vue.js 路由懒加载

Vue.js 路由懒加载

在 Vue.js 开发中,随着应用规模的扩大,打包后的 JavaScript 文件可能会变得相当庞大,影响页面的加载速度和性能。为了解决这个问题,Vue Router 提供了路由懒加载功能,可以将不同路由对应的组件分割成独立的代码块,只有在访问对应路由时才加载相应的组件,从而提高应用的性能。

实现路由懒加载

在传统的路由配置中,组件是通过静态导入的方式引入的:

import UserDetails from './views/UserDetails.vue';

const routes = [
  { path: '/users/:id', component: UserDetails },
];

要实现路由懒加载,可以将组件的导入方式修改为动态导入:

const routes = [
  {
    path: '/users/:id',
    component: () => import('./views/UserDetails.vue'),
  },
];

在上述配置中,component 接收一个返回 Promise 的函数,只有在访问对应路由时,才会执行该函数并加载组件。这种方式可以有效地将应用的代码按需加载,减少初始加载时间。

按组分块

有时候,我们希望将某些相关的组件打包到同一个异步块(chunk)中,以便在访问其中一个组件时,相关组件也被一起加载。这可以通过命名 chunk 来实现。

const UserDetails = () =>
  import(/* webpackChunkName: "group-user" */ './views/UserDetails.vue');
const UserDashboard = () =>
  import(/* webpackChunkName: "group-user" */ './views/UserDashboard.vue');
const UserProfileEdit = () =>
  import(/* webpackChunkName: "group-user" */ './views/UserProfileEdit.vue');

const routes = [
  { path: '/users/:id', component: UserDetails },
  { path: '/dashboard', component: UserDashboard },
  { path: '/profile/edit', component: UserProfileEdit },
];

在上述代码中,使用了特殊的注释语法 /* webpackChunkName: "group-user" */ 为这些组件指定了相同的 chunk 名称。Webpack 会将具有相同 chunk 名称的异步模块合并到同一个异步块中,从而在加载其中一个组件时,相关的组件也会被一起加载。

注意事项

  • 异步组件与动态导入:虽然 Vue 支持异步组件,但在路由懒加载的场景下,推荐使用动态导入的方式来定义路由组件。异步组件更适合在组件内部按需加载子组件,而动态导入则更适合用于路由级别的代码分割。
  • 打包器支持:如果你使用的是 Webpack 等打包器,它们会自动处理代码分割和懒加载。如果你使用的是 Babel,需要确保添加了 @babel/plugin-syntax-dynamic-import 插件,以正确解析动态导入语法。
  • 命名 chunk:在使用命名 chunk 时,需要确保打包器支持相应的语法。例如,Webpack 需要版本高于 2.4 才支持命名 chunk 功能。

通过合理地使用路由懒加载和按组分块,可以显著提升 Vue.js 应用的性能,改善用户体验。

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

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

相关文章

【C语言系列】深入理解指针(4)

深入理解指针(4) 一、回调函数是什么?二、qsort使用举例2.1使用qsort函数排序整型数据2.2使用qsort排序结构数据 三、qsort函数的模拟实现四、总结 一、回调函数是什么? 回调函数就是一个通过函数指针调用的函数。 如果你把函数的…

零售业革命:改变行业的顶级物联网用例

mpro5 产品负责人Ruby Whipp表示,技术进步持续重塑零售业,其中物联网(IoT)正引领这一变革潮流。 研究表明,零售商们正在采用物联网解决方案,以提升运营效率并改善顾客体验。这些技术能够监控运营的各个方面…

macos的图标过大,这是因为有自己的设计规范

苹果官方链接:App 图标 | Apple Developer Documentation 这个在官方文档里有说明,并且提供了sketch 和 ps 的模板。 figma还提供了模板: Figma

【从零到一,C++项目实战】CineShare++(基于C++的视频点播系统)

🌈个人主页: 南桥几晴秋 🌈C专栏: 南桥谈C 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据…

【leetcode100】从前序与中序遍历序列构造二叉树

1、题目描述 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,nul…

免费GPU算力,不花钱部署DeepSeek-R1

在人工智能和大模型技术飞速发展的今天,越来越多的开发者和研究者希望能够亲自体验和微调大模型,以便更好地理解和应用这些先进的技术。然而,高昂的GPU算力成本往往成为了阻碍大家探索的瓶颈。幸运的是,腾讯云Cloud Studio提供了免…

window保存好看的桌面壁纸

1、按下【WINR】快捷键调出“运行”窗口,输入以下命令后回车。 %localappdata%\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets 2、依次点击【查看】【显示】,勾选【隐藏的项目】,然后按【CtrlA】全部…

android 的aab包

什么是 AAB (Android App Bundle)? AAB (Android App Bundle) 是 Google 推出的新一代 Android 应用发布格式,用于取代传统的 APK 格式。AAB 的全称是 Android App Bundle,扩展名为 .aab,它并不是直接可以安装的文件,…

【25考研】中科院软件考研复试难度分析!

中科院软件复试不需要上机!且对专业综合能力要求较高!提醒同学一定要认真复习! 一、复试内容 二、参考书目 官方并未明确给出,建议同学参考初试书目: 1)《数据结构(C语言版)》严蔚…

2014年蓝桥杯第五届CC++大学B组真题及代码

目录 1A:啤酒和饮料(填空)(枚举) 2B:切面条(填空) 3C:李白打酒(填空)(dfs) 4D:史丰收速算(代码…

目标跟踪之sort算法(3)

这里写目录标题 1 流程1 预处理2 跟踪 2 代码 参考:sort代码 https://github.com/abewley/sort 1 流程 1 预处理 1.1 获取离线检测数据。1.2 实例化跟踪器。2 跟踪 2.1 轨迹处理。根据上一帧的轨迹预测当前帧的轨迹,剔除到当前轨迹中为空的轨迹得到当前…

单片机基础模块学习——DS18B20温度传感器芯片

不知道该往哪走的时候,就往前走。 一、DS18B20芯片原理图 该芯片共有三个引脚,分别为 GND——接地引脚DQ——数据通信引脚VDD——正电源 数据通信用到的是1-Wier协议 优点:占用端口少,电路设计方便 同时该协议要求通过上拉电阻…

【精选】基于数据挖掘的招聘信息分析与市场需求预测系统 职位分析、求职者趋势分析 职位匹配、人才趋势、市场需求分析数据挖掘技术 职位需求分析、人才市场趋势预测

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

文献阅读 250125-Accurate predictions on small data with a tabular foundation model

Accurate predictions on small data with a tabular foundation model Accurate predictions on small data with a tabular foundation model | Nature 使用一种基于表格的模型来对小型数据实现准确预测 ## Abstract: 基于其他列来填充标签列中缺失值的基本预测任务对于各种应…

shiro学习五:使用springboot整合shiro。在前面学习四的基础上,增加shiro的缓存机制,源码讲解:认证缓存、授权缓存。

文章目录 前言1. 直接上代码最后在讲解1.1 新增的pom依赖1.2 RedisCache.java1.3 RedisCacheManager.java1.4 jwt的三个类1.5 ShiroConfig.java新增Bean 2. 源码讲解。2.1 shiro 缓存的代码流程。2.2 缓存流程2.2.1 认证和授权简述2.2.2 AuthenticatingRealm.getAuthentication…

【QT】 控件 -- 显示类

🔥 目录 [TOC]( 🔥 目录) 1. 前言 2. 显示类控件2.1 Label 1、显示不同文本2、显示图片3、文本对齐、自动换行、缩进、边距4、设置伙伴 3.2 LCD Number 3.3 ProgressBar 3.4 Calendar Widget 3. 共勉 🔥 1. 前言 之前我在上一篇文章【QT】…

location的使用规则

1、基于URL的location 负责均衡配置 后端集群中的web服务器,必须要有对应的目录和文件才能被访问到 http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;upstream default_pool {server 10.0.0.7:…

如何制作浪漫风格的壁纸

制作浪漫风格的壁纸需要营造出温馨、柔和、梦幻的氛围,通过色彩、元素和构图来传达浪漫的情感。以下是一个详细的步骤指南,帮助你制作浪漫风格的壁纸: 一、明确设计目标 确定用途: 个人使用:如果是为了个人设备&#…

SpringBoot支持动态更新配置文件参数

前言 博主介绍:✌目前全网粉丝3W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领域。 涵盖技术内容:Java后端、大数据、算法、分布式微服务、中间件、前端、运维等。 博主所有博客文件…

题海拾贝:P2085 最小函数值

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》 欢迎点赞&#xff0c;关注&#xff01; 1、题…