news 2026/5/15 14:31:06

Router(路由懒加载,首屏加载时间过长)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Router(路由懒加载,首屏加载时间过长)

Vue 路由懒加载:

        原理描述:“通过箭头函数封装了组件的动态导入语法,import(...)本身会返回一个 Promise 对象。当路由匹配到对应路径时,Vue Router 会调用这个箭头函数,触发 Promise 执行,从而加载当前路由对应的组件模块(避免和解决路由一次性加载所有组件代码和相关依赖导致首屏加载时间过长的问题)

// 非懒加载:初始时就加载 Home 组件 import Home from './views/Home.vue' // 懒加载:只有访问 /home 时才加载 Home 组件 const Home = () => import('./views/Home.vue')

接口动态路由加载(Dynamic Routing via API)

  • 核心目的:根据后端返回的动态数据(通常是权限或业务配置)动态生成路由配置,实现路由的灵活控制(如权限管理)。
  • 原理:前端不预先写死所有路由,而是在特定时机(如用户登录后)通过调用后端接口,获取该用户有权访问的路由列表(包含路径、组件、权限等信息),再动态添加到路由系统中。
  • 场景:适用于需要基于用户角色 / 权限动态展示不同路由的场景(例如管理员和普通用户看到的路由菜单不同)。
  • 实现方式:在前端路由系统中,通过路由实例的 API(如 Vue Router 的addRoute,React Router 的动态路由配置)将接口返回的路由信息动态注入,例如:
// 登录后获取后端返回的路由列表 api.getRoutes().then(routes => { // 将动态路由添加到路由系统 routes.forEach(route => router.addRoute(route)) })
  • 路由懒加载是 **“加载时机的优化”**,解决的是 “什么时候加载代码” 的问题,核心是性能优化。
  • 接口动态路由加载是 **“路由配置的动态生成”**,解决的是 “加载哪些路由” 的问题,核心是权限控制或动态配置。

二者可以结合使用:例如动态从接口获取路由列表后,对列表中的组件采用懒加载方式导入,既满足权限需求,又优化加载性能。

结合路由懒加载和接口动态路由加载的核心思路是:从接口获取动态路由配置后,将配置中的组件路径转换为懒加载形式,再动态添加到路由系统中。以下以 Vue + Vue Router 为例,提供具体实现方案(React 思路类似,核心是动态导入组件 + 动态注册路由)。

一、前提准备

  1. 后端接口设计:登录后返回该用户有权访问的路由列表,包含路由的基本信息(路径、名称、组件路径、子路由等)。示例返回格式:json
// 接口返回的动态路由列表 [ { "path": "/dashboard", "name": "Dashboard", "meta": { "title": "仪表盘", "roles": ["admin", "user"] }, "component": "La
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/15 14:29:31

Python34_装饰器知识

Python34_装饰器知识 文章目录Python34_装饰器知识[toc]1-核心知识2-装饰器代码示例3-辨识函数是否装饰器一、从代码结构辨识(最核心)1. 高阶函数特征2. 返回对象必须是"可调用"的二、从使用方式辨识1. 语法糖(显性标识&#xff0…

作者头像 李华
网站建设 2026/5/15 14:28:14

基于芒果派MQ Quad的嵌入式视频流媒体系统开发实战

1. 项目概述:当芒果派遇上视频流媒体最近在捣鼓一个挺有意思的项目,核心就是把手头这块小巧的芒果派 MangoPi MQ Quad 开发板,变成一个集视频采集、直播推流和客户端拉流于一身的“全能型选手”。这个想法的初衷很简单,就是想利用…

作者头像 李华
网站建设 2026/5/15 14:23:23

Emacs集成AI编程:gpt.el插件实现GPT模型无缝调用与工作流优化

1. 项目概述:在Emacs中与AI对话的“瑞士军刀”如果你是一个Emacs的重度用户,同时又对AI辅助编程和写作充满兴趣,那么你很可能已经厌倦了在浏览器、终端和编辑器之间来回切换的割裂感。stuhlmueller/gpt.el这个项目,正是为了解决这…

作者头像 李华
网站建设 2026/5/15 14:14:17

构建高性能数据压缩架构:7-Zip-zstd的工程实践与系统设计

构建高性能数据压缩架构:7-Zip-zstd的工程实践与系统设计 【免费下载链接】7-Zip-zstd 7-Zip with support for Brotli, Fast-LZMA2, Lizard, LZ4, LZ5 and Zstandard 项目地址: https://gitcode.com/gh_mirrors/7z/7-Zip-zstd 在现代数据密集型系统中&#…

作者头像 李华
网站建设 2026/5/15 14:13:12

5分钟掌握OBS高级计时器:直播和视频制作的终极时间管理工具

5分钟掌握OBS高级计时器:直播和视频制作的终极时间管理工具 【免费下载链接】obs-advanced-timer 项目地址: https://gitcode.com/gh_mirrors/ob/obs-advanced-timer OBS高级计时器(obs-advanced-timer)是一款专为OBS Studio设计的强…

作者头像 李华