前端实现动态路由vue

简介: 该代码实现了Vue动态路由功能,包含基础路由配置、路由守卫、动态添加路由及登录认证。用户登录成功后,将动态加载仪表盘路由组件,实现按需加载。

以上代码实现了Vue的动态路由功能,主要包含以下部分:

  1. 基础路由配置:定义了首页和登录页
  2. 路由守卫:在访问需要认证的路由前检查token
  3. 动态路由添加:在用户认证通过后动态添加仪表盘路由
  4. 登录组件:模拟登录过程并存储token

当用户登录成功后,系统会动态添加仪表盘路由,实现了路由的动态加载。



仪表盘


这是动态加载的路由组件





登录




import Vue from 'vue';
import VueRouter from 'vue-router';
import Home from './views/Home.vue';
import Login from './views/Login.vue';

Vue.use(VueRouter);

const routes = [
{
path: '/',
name: 'Home',
component: Home,
meta: { requiresAuth: true }
},
{
path: '/login',
name: 'Login',
component: Login
}
];

const router = new VueRouter({
mode: 'history',
routes
});

// 路由守卫
router.beforeEach((to, from, next) => {
if (to.meta.requiresAuth) {
const token = localStorage.getItem('token');
if (!token) {
next({ name: 'Login' });
} else {
// 动态添加路由
if (!router.hasRoute('Dashboard')) {
router.addRoute({
path: '/dashboard',
name: 'Dashboard',
component: () => import('./views/Dashboard.vue'),
meta: { requiresAuth: true }
});
}
next();
}
} else {
next();
}
});

export default router;

目录
相关文章
|
存储 JavaScript 算法
Vue中如何实现动态路由
Vue中如何实现动态路由
217 1
QGS
(麒麟V10-arm)编译安装php-7.4及部分依赖
记(麒麟V10-arm)编译安装php-7.4及部分依赖
QGS
1651 0
(麒麟V10-arm)编译安装php-7.4及部分依赖
|
JSON 编解码 网络协议
记一次Logstash日志丢失问题
大量的json解析错误,根据日志情况分析,原因是日志数据传输到logstash之后被截断成了多条数据,于是有的数据就解析异常了,自然无法正常到归集到es的索引文档中。
|
11月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
608 1
vue2自定义指令-加载指令v-loading和占位图指令v-showimg
vue2自定义指令-加载指令v-loading和占位图指令v-showimg
|
2月前
|
定位技术 API Android开发
怎么把定位改成你想要的位置?
GPS定位修改技术指南 一、定位修改技术原理
|
2月前
|
安全 Linux 网络安全
Python极速搭建局域网文件共享服务器:一行命令实现HTTPS安全传输
本文介绍如何利用Python的http.server模块,通过一行命令快速搭建支持HTTPS的安全文件下载服务器,无需第三方工具,3分钟部署,保障局域网文件共享的隐私与安全。
579 0
|
4月前
|
安全 网络协议 算法
HTTP/HTTPS与SOCKS5协议在隧道代理中的兼容性设计解析
本文系统探讨了构建企业级双协议隧道代理系统的挑战与实现。首先对比HTTP/HTTPS和SOCKS5协议特性,分析其在工作模型、连接管理和加密方式上的差异。接着提出兼容性架构设计,包括双协议接入层与统一隧道内核,通过协议识别模块和分层设计实现高效转换。关键技术部分深入解析协议转换引擎、连接管理策略及加密传输方案,并从性能优化、安全增强到典型应用场景全面展开。最后指出未来发展趋势将更高效、安全与智能。
179 1
|
10月前
如何在组件的 slot 元素中添加样式
【10月更文挑战第25天】如何在组件的 slot 元素中添加样式
212 2
|
存储 前端开发 JavaScript
前端菜单及按钮权限拦截,实现方案及思路
此实现方案基于vue框架,并需要依赖vue项目相关的库,router、store等等;前端同学要与后端同学协商,常规是让后端返回一个树结构的菜单数据,并且将所有的涉及权限控制的页面path给到后端,如果是按钮,需要把所有的按钮 code 码统一下,这是前期工作,很重要。