结果会获取完整的用户的路由规则

// 新建一个vuex模块来专门处理权限相关操作
import { constantRoutes, asyncRoutes } from "@/router"; export default {
namespaced: true,
state() {
return {
// 准备routes是静态路由和动态路由合并之后的内容(提供给侧边栏去渲染)
routes: constantRoutes,
};
},
getters: {},
mutations: {
setRoutes(state, data) {
// data就是整理好的当前用户的动态路由映射数组 菜单显示
state.routes = [...constantRoutes, ...data];
},
},
actions: {
// 用来整理出属于当前用户的动态路由映射数组
filterRoutes(context, data) {
// data是当前用户的权限点标识
// asyncRoutes 是完整的动态路由映射数组
// 思路:遍历每个动态路由映射是否在当前用户的页面权限标识中
// 如果在就说明拥有改页面访问权限,返回这个路由映射
let userAsyncRoutes = asyncRoutes.filter((item) => {
return data.includes(item.name);
});
// 当前用户的动态路由
// console.log(userAsyncRoutes);
// 赋给state里面的routes,形成完整的静态+动态
userAsyncRoutes.push({ path: "*", redirect: "/404", hidden: true });
context.commit("setRoutes", userAsyncRoutes);
// 返回该用户的动态路由信息
return userAsyncRoutes;
},
},
};

在 vuex 中建立一个 permission.js 文件用于合并静态和动态的路由规则的更多相关文章

  1. 如何用Docker建立一个Node.js的开发环境

      建立一个文件夹 用管理员身份打开powershell. 在文件夹下面运行npm init, 根据提示填入信息,以便产生一个package.json文件. 在文件中加入需要的dependencies ...

  2. 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件

    找了这么久资料,总算解决了 感谢博客园:http://www.cnblogs.com/xsht/p/5275081.html 感谢百度:http://zhidao.baidu.com/link?url ...

  3. 在一个另一个文件中 #include一个**dlg.h文件,会发生dlg的资源ID未定义的错误 :

    1    在一个另一个文件中 #include一个**dlg.h文件,会发生dlg的资源ID未定义的错误 : dlg1.h(23) : error C2065: 'IDD_DIALOG1' : und ...

  4. ExpandoObject与DynamicObject的使用 RabbitMQ与.net core(一)安装 RabbitMQ与.net core(二)Producer与Exchange ASP.NET Core 2.1 : 十五.图解路由(2.1 or earler) .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了

    ExpandoObject与DynamicObject的使用   using ImpromptuInterface; using System; using System.Dynamic; names ...

  5. JSFinder:一个在js文件中提取URL和子域名的脚本

    JSFinder介绍 JSFinder是一款用作快速在网站的js文件中提取URL,子域名的脚本工具. 支持用法 简单爬取 深度爬取 批量指定URL/指定JS 其他参数 以往我们子域名多数使用爆破或DN ...

  6. 建立一个node.js服务器(使用express搭建第一个Web环境)

    一.官网下载node.js 下载地址:https://nodejs.org/en/download/ 根据向导,下一步安装就可以了! 二.使用express搭建Web环境 express是一个开源的n ...

  7. Vue中ESlint配置文件eslintrc.js文件详解

    最近在跟着视频敲项目时,代码提示出现很多奇奇怪怪的错误提示,百度了一下是eslintrc.js文件没有配置相关命令,ESlint的语法检测真的令人抓狂,现在总结一下这些命令的解释,方便以后查阅. 默认 ...

  8. 由js文件中引入另外的js文件想到的

    1. html中,使用<script src="../static/js/xxx.js"></script>引入js文件.   2. 在js文件中,引入js ...

  9. MFC 中 删除一个非空文件夹

    MFC中提供了删除文件夹的一个封装函数 RemoveDirectory(LPCTSTR lpPathName),我们只要把要删除的文件夹的路径传进去就可以删除了,貌似一切如此简单.我象征性的建立一个文 ...

  10. 如何在Apache中建立一个新端口

    环境: Windows server 2008 R2, Apache, PHP5 步骤: 建立一个目录,里面放置一个index.php. 打开Apache\conf\httpd.conf 文件,做如下 ...

随机推荐

  1. 37.Spring注解相关面试题

    1.@Resource和@Autowired 区别 2.@Repository.@Component.@Service.@Controller 区别

  2. docker持久化数据存储

    一.把数据存储到本地/opt/data目录下面,容器挂载到/data目录下面 [root@docker-1 ~]# docker run -itd --name www -v /opt/data:/d ...

  3. P1982 [NOIP2013 普及组] 小朋友的数字 题解

    目录 简单版 题目 code 本题 code 简单版 先要会做这道题 题目 P1115 最大子段和https://www.luogu.com.cn/problem/P1115 这道题其实是动态规划,d ...

  4. robots.txt详解[通俗易懂]

    大家好,又见面了,我是你们的朋友全栈君. 怎样查看robots文件? 浏览器输入 主域名/robots.txt robots.txt的作用 robots.txt 文件规定了搜索引擎抓取工具可以访问网站 ...

  5. zabbix housekeeper 太大 清理

    217G  housekeeper.ibd rename table housekeeper to housekeeper_bak_20220801;Query OK, 0 rows affected ...

  6. Elasticsearch Windows版安装配置

    Elasticsearch简介 Elasticsearch是一个开源的搜索文献的引擎,大概含义就是你通过Rest请求告诉它关键字,他给你返回对应的内容,就这么简单. Elasticsearch封装了L ...

  7. 基于Python的简单读卡上位机界面

    使用到的模块,pyserial  pyqt5  pymysql (我先是实现在命令行下通过串口进行对板子硬件的控制,比如Led ,beep等,在实现检测卡(是否选卡成功),连接卡(验证哪一个扇区),读 ...

  8. C++ OnlineJudge

    基本输入输出 1.接收多行数据,直到文件末尾 1 #include <iostream> 2 //#include <bits/stdc++.h> 3 #include < ...

  9. 基础vue的一些知识补充

    一.:disabled 该属性能接受布尔值,可以用于元素的使用.当值为true时,该元素将无法被使用,如button的disabled属性被设置为true后,将无法被点击,input的disabled ...

  10. 打包pom文件

    <?xml version="1.0"?><project xsi:schemaLocation="http://maven.apache.org/PO ...