6-动态路由

embedded/2024/10/18 21:24:20/

前文提到用户可以通过url访问到不属于自己权限的页面,这需要通过动态路由来解决
1.将后端返回的菜单数据存储到Cookie之后,调用状态管理中添加路由方法

javascript">//调用store中的setMenu函数this.$store.commit('setMenu',data.data.data)// 动态路由配置this.$store.commit('registerouter',this.$router)
//添加路由方法
//动态注册路由
registerouter(state, router) {// 没有数据if (!Cookie.get("menu"))return;//有数据const menu = JSON.parse(Cookie.get("menu"))state.menu = menu;//动态组装路由const menuArray = []menu.forEach(item => {if (item.children) { //有子菜单item.children = item.children.map(item => {item.component = () =>import (`../views/${item.url}`)return item})menuArray.push(...item.children)} else { //没有子菜单item.component = () =>import (`../views/${item.url}`)menuArray.push(item)}})// console.log(menuArray, "menu")//路由的动态添加menuArray.forEach(item => {router.addRoute('Main', item)})
}

3.router下的index.js文件如下

javascript">import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)//创建路由组件
import Main from '../views/Main.vue'
import Login from '../views/Login.vue'
//将路由与组件进行映射
const routes = [{path: '/login',name: 'login',component: Login,},//主路由{path: '/',component: Main,name: 'Main',redirect: '/home', //路径为 / 时,重定向到home//子路由children: []}]//创建router实例
const router = new VueRouter({routes
})
export default router

4.注意:此时虽然可以实现动态路由,但是刷新页面则会失效,在main.js文件中也需要调用添加路由方法

javascript">new Vue({router, //将router挂载到vue实例上store, //将store挂载到vue实例上render: h => h(App),created() {store.commit('registerouter', router)}
}).$mount('#app')

http://www.ppmy.cn/embedded/24040.html

相关文章

盲人手机导航:科技之光引领无障碍出行新纪元

在这个日新月异的数字时代,科技不仅改变了我们获取信息的方式,更在无声中拓宽了视障人士的生活半径。盲人手机导航这一创新技术,正逐步成为他们探索世界、实现独立出行的重要伙伴。 对于大多数人而言,日常出行或许只是一次…

IP路由安全:保护网络免受威胁

目录 前言 一 IPv4 协议及其安全性分析 IPv4 安全问题: 增强 IPv4 安全性的策略: 二 IPsec:增强 IP 通信安全 1.IPsec 工作原理: 2.IPsec 用例: 3.AH协议 AH 协议工作原理 AH 协议的工作原理高级概述 AH 协议…

公网ip申请ssl仅260

现在很多网站都已经绑定域名,因此使用的都是域名SSL证书保护网站传输信息安全,而没有绑定域名只有公网IP地址的网站想要保护传输信息安全就要申请IP SSL证书。IP SSL证书也是由正规CA认证机构颁发的数字证书,用来保护用户的隐私以及数据安全&…

vue 配合 video.js 实现视频播放

1. 导入 video.js 包 npm install video.js -S npm install videojs-flash -S 2. 代码实现 <template><div><videoid"my-video"class"video-js"controlspreload"auto"width"640"height"264":poster&quo…

Apache Seata基于改良版雪花算法的分布式UUID生成器分析2

title: 关于新版雪花算法的答疑 author: selfishlover keywords: [Seata, snowflake, UUID, page split] date: 2021/06/21 本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 关于新版雪花算法的答疑 在上一篇关于新版雪花算法的解析中…

【hackmyvm】vivifytech靶机

渗透思路 信息收集端口扫描端口服务信息目录扫描爆破hydra--sshgit提权 信息收集 ┌──(kali㉿kali)-[~] └─$ fping -ag 192.168.9.0/24 2>/dev/null 192.168.9.119 --主机 192.168.9.164 --靶机个人习惯&#xff0c;也方便后续操作&#xff0c;将IP地址赋值给一个变…

Halcon如何制作标定板的关键点

前面用下面算子生成文件和PS文件&#xff0c;我就不说了&#xff0c;太多人说了 gen_caltab(7,7,0.0125,0.5,caltab_120mm.descr,120_120.ps) 生成之后&#xff0c;大部分人.ps文件是用PhotoShop打开&#xff0c;然后去打印&#xff0c;再做后续的标定等工序&#xff0c;但是打…

设计模式(四)、策略模式

介绍 策略模式定义了一系列算法或策略&#xff0c;并将每个算法封装在独立的类中&#xff0c;使得它们可以互相替换。通过使用策略模式&#xff0c;可以在运行时根据需要选择不同的算法&#xff0c;而不需要修改客户端代码。 策略模式通过将算法与使用算法的代码解耦&#xf…