CN113254100B - 基于Vue的多级路由动态加载的实现方法 - Google Patents
基于Vue的多级路由动态加载的实现方法 Download PDFInfo
- Publication number
- CN113254100B CN113254100B CN202110571278.4A CN202110571278A CN113254100B CN 113254100 B CN113254100 B CN 113254100B CN 202110571278 A CN202110571278 A CN 202110571278A CN 113254100 B CN113254100 B CN 113254100B
- Authority
- CN
- China
- Prior art keywords
- route
- component
- mapping
- router
- vue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了基于Vue的多级路由动态加载的实现方法,前端配置静态路由;web端创建菜单,指定不同层级菜单的组件路径;用户登录,从服务端获取角色权限对应的路由数据并返回前端;前端通过路由懒加载方法将路由数据中的组件字符串转换为对象,根据映射规则将不同层级的路由与组件建立映射;前端依据vue‑router的addRoutes方法动态加载路由,得到处理后的路由表;浏览器根据处理后的路由表进行展示。本发明在采用后台动态加载路由,只需要在web端创建菜单,当用户登录后,获取对应的权限路由表,前端只需将组件依据规则映射成组件对象即可,易操作且便于维护。
Description
技术领域
本发明涉及web前端技术领域,具体的说,是基于Vue的多级路由动态加载的实现方法。
背景技术
在单页面富应用(SPA)的场景下,采用前后端分离的开发模式,前端路由配置尤为重要。路由加载一般采用两种方式,静态加载和动态加载。前者是前端写好全部静态路由,用户登录后依据角色权限筛选对应的路由表,其核心是前端控制路由;后者是用户登录后通过调用接口获取当前用户对应的权限路由表,前端获取数据后动态加载至路由表,其过程是由后端处理路由。
微服务场景下,路由匹配列表层级多、数据大,如果采用静态路由,需在路由匹配列表中将路由和组件进行一一映射,如果多级菜单,则会出现多个层级的嵌套,层级复杂不易维护。
对于路由层级多,权限设置复杂,通过后台传递路由表实现动态路由更便捷、易维护。本发明结合web端多级菜单配置,提出了一种基于vue的多级路由动态加载的实现方法。
发明内容
本发明的目的在于提供一种基于Vue的多级路由动态加载的实现方法,用于解决现有技术中静态路由在路由匹配列表中将路由和组件进行一一映射时,如果涉及多级菜单,则会出现多个层级的嵌套,层级复杂且不易维护的问题。
本发明通过下述技术方案解决上述问题:
一种基于Vue的多级路由动态加载的实现方法,包括:
步骤S100:前端配置静态路由:利用vue-router创建路由实例,在路由实例中设置静态路由匹配列表,其包括根路由、二级路由和三级路由,二级路由包括登录页面和布局页面,三级路由包括首页;目的是将与用户权限无关的路由提前配置好,方便后续步骤中将与用户权限相关的路由动态加载至路由表上。
步骤S200:web端创建菜单,根据不同层级加载路由的方式,指定不同层级菜单的组件路径;
步骤S300:用户登录,服务器获取角色权限对应的路由数据并返回前端;
步骤S400:前端通过AJAX获取路由数据,并采用路由懒加载方法加载映射组件。因为服务端返回路由表中的组件是字符串格式,是router实例中组件为对象,因此通过懒加载的方式进行格式转换,将路由数据中的组件字符串转换为对象,根据映射规则将不同层级的路由与组件建立映射;
步骤S500:前端依据vue-router的addRoutes方法动态加载路由,得到处理后的路由表;
步骤S600:浏览器将处理后的路由表呈现给用户终端。
所述映射规则为:
根路由,映射<router-view/>占位符;
二级路由,映射组件从低到高分别为可渲染组件、layout组件;
三级路由,映射组件从低到高分别为可渲染组件、layout组件、<router-view/>占位符;
……
多级路由,映射组件从低到高分布为可渲染组件、layout组件、<router-view/>占位符、<router-view/>占位符、……。
所述菜单包括菜单名称、权限标识、访问路径、组件路径、图标样式、重定向路径、排序、状态和类型。
本发明与现有技术相比,具有以下优点及有益效果:
本发明在采用后台动态加载路由,只需要在web端创建菜单,即可实现可视化的菜单层级,当用户登录后,通过服务端获取对应的权限路由表,前端只需将路由表中的组件依据一定的规则映射成组件对象即可。该方法易操作且便于维护。
附图说明
图1为本发明的原理框图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例:
结合附图1所示,一种基于Vue的多级路由动态加载的实现方法,包括:
步骤S100:前端配置静态路由:利用vue-router创建路由实例,在路由实例中设置静态路由匹配列表,静态路由匹配列表包括根路由、二级路由和三级路由,二级路由包括登录页面和布局页面,三级路由包括首页;目的是将与用户权限无关的路由提前配置好,方便后续步骤中将与用户权限相关的路由动态加载到路由表上。
例如:前端创建router文件夹、创建index.js文件,在routes中创建数组并指定路由匹配列表,同时添加至vue-router实例中。
步骤S200:web端创建菜单,根据不同层级加载路由的方式,指定不同层级组件的组件路径;
一级菜单:组件路径设置为’/’;
二级菜单:组件路径设置为’layout’;
三级菜单:如果该层级为最底层,组件路径设置为真实组件路径;如果不是最低层,组件路径为‘/’,即映射的组件对象为<router-view/>占位符,同时增加重定向路径,避免点击三级菜单页面空白,同时也确保菜单层级按预期加载;
四级菜单:同三级菜单类似。
所述菜单包括菜单名称、权限标识、访问路径、组件路径、图标样式、重定向路径、排序、状态和类型。
步骤S300:用户登录,服务端获取角色权限对应的路由数据返回前端,其中,权限设置是在步骤S200中配置完成。
步骤S400:前端通过AJAX获取路由数据,并采用路由懒加载方法加载映射组件。因为服务端返回路由表中的组件是字符串格式,而router实例中组件为对象,因此通过懒加载的方式进行格式转换,将路由数据中的组件字符串转换为对象,根据映射规则将不同层级的路由与组件建立映射;所述映射规则为:
根路由,映射<router-view/>占位符;
二级路由,映射组件从低到高分别为可渲染组件、layout组件;
三级路由,映射组件从低到高分别为可渲染组件、layout组件、<router-view/>占位符;
四级路由,映射组件从低到高分布为可渲染组件、layout、<router-view/>占位符、<router-view/>占位符;
……;
多级路由,映射组件从低到高分别为可渲染组件、layout组件、<router-view/>占位符、<router-view/>占位符、……。
<router-view/>占位符,本身是组件对象,可以直接加到路由匹配列表中。
<router-view/>占位符:表示该层级组件只是占位,没有真实可渲染的组件,如果该路由指定了默认页面,则需设置重定向;
之所以用占位,目的是确保菜单层级按预期效果加载。
步骤S500:前端依据vue-router的addRoutes方法动态加载路由,得到处理后的路由表;
步骤S600:浏览器将处理后的路由表呈现给用户终端。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。
Claims (1)
1.一种基于Vue的多级路由动态加载的实现方法,其特征在于,包括:
步骤S100:前端配置静态路由:利用vue-router创建路由实例,在路由实例中设置静态路由匹配列表,其包括根路由、二级路由和三级路由,二级路由包括登录页面和布局页面,三级路由包括首页;
步骤S200:web端创建菜单,根据不同层级加载路由的方式,指定不同层级菜单的组件路径;所述菜单包括菜单名称、权限标识、访问路径、组件路径、图标样式、重定向路径、排序、状态和类型;
步骤S300:用户登录,服务端获取角色权限对应的路由数据并返回前端;
步骤S400:前端通过路由懒加载方法将路由数据中的组件字符串转换为对象,根据映射规则将不同层级的路由与组件建立映射;所述映射规则为:
根路由,映射<router-view/>占位符;
二级路由,映射组件从低到高分别为可渲染组件、layout组件;
三级路由,映射组件从低到高分别为可渲染组件、layout组件、<router-view/> 占位符;
四级路由,映射组件从低到高分别为可渲染组件、layout组件、<router-view/>占位符、<router-view/>占位符;
步骤S500:前端依据vue-router的addRoutes方法动态加载路由,得到处理后的路由表;
步骤S600:浏览器将处理后的路由表呈现给用户终端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110571278.4A CN113254100B (zh) | 2021-05-25 | 2021-05-25 | 基于Vue的多级路由动态加载的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110571278.4A CN113254100B (zh) | 2021-05-25 | 2021-05-25 | 基于Vue的多级路由动态加载的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254100A CN113254100A (zh) | 2021-08-13 |
CN113254100B true CN113254100B (zh) | 2023-08-01 |
Family
ID=77184241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110571278.4A Active CN113254100B (zh) | 2021-05-25 | 2021-05-25 | 基于Vue的多级路由动态加载的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254100B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113835737A (zh) * | 2021-08-24 | 2021-12-24 | 交控科技股份有限公司 | 一种前端项目添加权限的方法及系统 |
CN113918263B (zh) * | 2021-11-11 | 2023-09-05 | 盐城天眼察微科技有限公司 | 视图组件的虚拟路由方法、装置、设备及计算机存储介质 |
CN114860356B (zh) * | 2022-02-24 | 2023-06-13 | 山东浪潮科学研究院有限公司 | 基于路由懒加载的菜单管理方法及装置 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106940642A (zh) * | 2017-01-13 | 2017-07-11 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 动态icd配置的总线模拟器系统 |
CN107645557A (zh) * | 2017-09-29 | 2018-01-30 | 厦门大宛科技有限公司 | 一种基于业务组件的集成应用系统 |
CN109376316A (zh) * | 2018-11-05 | 2019-02-22 | 珠海格力电器股份有限公司 | 动态加载路由的方法、系统和服务器 |
CN109669597A (zh) * | 2018-10-31 | 2019-04-23 | 武汉艺果互动科技股份有限公司 | 用户浏览网站时的前端权限控制方法、设备及存储设备 |
CN110442326A (zh) * | 2019-08-11 | 2019-11-12 | 西藏宁算科技集团有限公司 | 一种基于Vue简化前后端分离权限控制的方法及其系统 |
CN110502712A (zh) * | 2019-08-09 | 2019-11-26 | 广东浪潮大数据研究有限公司 | 一种网页菜单生成方法、装置及服务器 |
CN110502912A (zh) * | 2019-08-19 | 2019-11-26 | 四川长虹电器股份有限公司 | 一种前端权限路由控制方法 |
CN110535774A (zh) * | 2019-07-24 | 2019-12-03 | 平安科技(深圳)有限公司 | 动态路由处理方法、装置、计算机设备及存储介质 |
CN111240644A (zh) * | 2019-12-31 | 2020-06-05 | 浪潮金融信息技术有限公司 | 一种基于vueJS开发web管理平台架构的方法 |
CN111459566A (zh) * | 2020-03-10 | 2020-07-28 | 中国平安人寿保险股份有限公司 | 基于权限验证的路由加载方法及相关设备 |
CN111538530A (zh) * | 2020-04-29 | 2020-08-14 | 中国银行股份有限公司 | 页面跳转方法及系统、存储介质及电子设备 |
CN111610906A (zh) * | 2020-04-08 | 2020-09-01 | 曙光信息产业(北京)有限公司 | 针对动态菜单结构的路由注册方法、装置和计算机设备 |
CN111835646A (zh) * | 2020-07-13 | 2020-10-27 | 四川虹魔方网络科技有限公司 | 一种基于Vue的模块化路由管理方法及权限控制方法 |
CN111859224A (zh) * | 2020-07-31 | 2020-10-30 | 平安健康保险股份有限公司 | 基于节点服务器的服务端渲染方法、装置和计算机设备 |
CN111949351A (zh) * | 2020-08-12 | 2020-11-17 | 深圳前海微众银行股份有限公司 | 页面渲染方法、装置、设备及计算机可读存储介质 |
CN112016128A (zh) * | 2020-10-29 | 2020-12-01 | 北京淇瑀信息科技有限公司 | 基于CRUD和权限管理的vue开发方法及装置 |
CN112257091A (zh) * | 2020-10-28 | 2021-01-22 | 南开大学 | 一种基于前后端分离的权限控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10229214B2 (en) * | 2015-12-31 | 2019-03-12 | Ca, Inc. | Dynamic web page navigation |
-
2021
- 2021-05-25 CN CN202110571278.4A patent/CN113254100B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106940642A (zh) * | 2017-01-13 | 2017-07-11 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 动态icd配置的总线模拟器系统 |
CN107645557A (zh) * | 2017-09-29 | 2018-01-30 | 厦门大宛科技有限公司 | 一种基于业务组件的集成应用系统 |
CN109669597A (zh) * | 2018-10-31 | 2019-04-23 | 武汉艺果互动科技股份有限公司 | 用户浏览网站时的前端权限控制方法、设备及存储设备 |
CN109376316A (zh) * | 2018-11-05 | 2019-02-22 | 珠海格力电器股份有限公司 | 动态加载路由的方法、系统和服务器 |
CN110535774A (zh) * | 2019-07-24 | 2019-12-03 | 平安科技(深圳)有限公司 | 动态路由处理方法、装置、计算机设备及存储介质 |
CN110502712A (zh) * | 2019-08-09 | 2019-11-26 | 广东浪潮大数据研究有限公司 | 一种网页菜单生成方法、装置及服务器 |
CN110442326A (zh) * | 2019-08-11 | 2019-11-12 | 西藏宁算科技集团有限公司 | 一种基于Vue简化前后端分离权限控制的方法及其系统 |
CN110502912A (zh) * | 2019-08-19 | 2019-11-26 | 四川长虹电器股份有限公司 | 一种前端权限路由控制方法 |
CN111240644A (zh) * | 2019-12-31 | 2020-06-05 | 浪潮金融信息技术有限公司 | 一种基于vueJS开发web管理平台架构的方法 |
CN111459566A (zh) * | 2020-03-10 | 2020-07-28 | 中国平安人寿保险股份有限公司 | 基于权限验证的路由加载方法及相关设备 |
CN111610906A (zh) * | 2020-04-08 | 2020-09-01 | 曙光信息产业(北京)有限公司 | 针对动态菜单结构的路由注册方法、装置和计算机设备 |
CN111538530A (zh) * | 2020-04-29 | 2020-08-14 | 中国银行股份有限公司 | 页面跳转方法及系统、存储介质及电子设备 |
CN111835646A (zh) * | 2020-07-13 | 2020-10-27 | 四川虹魔方网络科技有限公司 | 一种基于Vue的模块化路由管理方法及权限控制方法 |
CN111859224A (zh) * | 2020-07-31 | 2020-10-30 | 平安健康保险股份有限公司 | 基于节点服务器的服务端渲染方法、装置和计算机设备 |
CN111949351A (zh) * | 2020-08-12 | 2020-11-17 | 深圳前海微众银行股份有限公司 | 页面渲染方法、装置、设备及计算机可读存储介质 |
CN112257091A (zh) * | 2020-10-28 | 2021-01-22 | 南开大学 | 一种基于前后端分离的权限控制方法 |
CN112016128A (zh) * | 2020-10-29 | 2020-12-01 | 北京淇瑀信息科技有限公司 | 基于CRUD和权限管理的vue开发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113254100A (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113254100B (zh) | 基于Vue的多级路由动态加载的实现方法 | |
AU2007210092B2 (en) | Presenting digitized content on a network | |
US9535966B1 (en) | Techniques for aggregating data from multiple sources | |
CN111966633B (zh) | 用于查询目录下子节点的方法、装置、电子设备及介质 | |
CN111695840B (zh) | 一种实现流程控制的方法和装置 | |
CN102081632A (zh) | 创建服务混搭实例的方法和设备 | |
CN110413520A (zh) | 页面测试中获取控件的方法、服务器及可读存储介质 | |
CN104428763B (zh) | 将结构化及非结构化数据实现在xml文件的方法 | |
CN110928901B (zh) | 基于MapServer服务协议的图层联合查询方法、设备及存储设备 | |
CN113268955A (zh) | 报文转换的方法和装置 | |
US20160239499A1 (en) | Object Creation Based on Copying Objects Corresponding to Similar Entities | |
CN110020243A (zh) | 物联网数据的查询方法、装置、物联网服务器和存储介质 | |
CN102004633B (zh) | 一种处理控件属性的方法及装置 | |
CN116048517B (zh) | 基于b/s架构应用系统的api接口生成方法、系统和装置 | |
US7379938B2 (en) | Method for defining a data mapping between two or more data structures | |
US20200379786A1 (en) | Keyboard interaction model for software builder canvas nodes | |
CN104253830A (zh) | 一种基于位置的服务选择方法 | |
US11409763B1 (en) | Applying a visual analytics intent language to generate data visualizations | |
WO2022212563A1 (en) | Applying a visual analytics intent language to generate data visualizations | |
CN103166927B (zh) | 一种xml通信协议动态管理方法 | |
CN102456070A (zh) | 检索装置和检索方法 | |
JP4529766B2 (ja) | 情報提供システム、情報提供方法、サーバ及び情報提供プログラム | |
CN111723036B (zh) | 数据处理方法、相关设备及计算机存储介质 | |
US12008013B2 (en) | Applying a visual analytics intent language to generate data visualizations | |
CN103905534A (zh) | 基于运营商城市信息的全局负载均衡方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |