vuex根据不同的用户权限展示不同的路由列表功能


Posted in Javascript onSeptember 20, 2019

需求描述

最近接到一个新的需求,要求将系统的用户进行分类,用户登陆后根据不同的用户权限展示不同的功能列表。

这个功能在后台管理中很常见,大致的思路是

后台返回用户类型,前端根据用户类型生成该类用户可以访问的功能列表。
后台返回功能列表,前端进行循环渲染。

一个在前端生成功能列表,一个在后端返回,两个本质上类似,最终都是需要得到一个该用户的功能功能列表。但是两者都有一个不可忽视的东西,就是如果用户直接在地址栏输入会怎么样。

技术选型

由于公司项目不算小,为了后期维护方便,我还是选择了使用 vuex 完成上述的功能。

主要想法为在vuex中保存用户登陆后的状态,以及用户可访问的路由列表,这样的话,不涉及到父子组件间的数据传递,可以很方便的在单个组件中获取到用户的权限路由列表。

Vuex

如果只是想简单的使用一个vuex,了解state,mutation,action就足够你使用

在src文件夹下,创建一个store文件夹,如果项目简单,可以将state,mutations,actions,getters等写入到一个文件中

vuex根据不同的用户权限展示不同的路由列表功能 

主要代码很简单,只需要导入Vue,Vuex,并且调用Vue.use(Vuex)。

结合官方解释的个人理解,一个vuex文件就是一个仓库,它包含着你需要共享的变量、有关的事件、以及可以执行这些事件的行为,我们把这些导出去,在单个组件中引入,我们便可以在单个组件中对共享的变量进行改变。

import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
export default new Vuex.Store({
state
})

state

state主要功能是用来定义变量,代表你需要共享的一个状态。比如,我想要共享用户可以访问的路由列表,所以,我需要先在state中定义一个存放路由列表的变量。

store/index.js中

import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
const state = {  
  pressionList: [],//用户允许登陆的路由列表
  loginTag:false//用户登陆状态 
}
export default new Vuex.Store({
state
})

单个组件中使用state,有两种方法,直接获取,或者使用mapState辅助工具

总结

以上所述是小编给大家介绍的vuex根据不同的用户权限展示不同的路由列表功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
PNG背景在不同浏览器下的应用
Jun 22 Javascript
9个javascript语法高亮插件 推荐
Jul 18 Javascript
JavaScript中的console.dir()函数介绍
Dec 29 Javascript
javacript使用break内层跳出外层循环分析
Jan 12 Javascript
js enter键激发事件实例代码
Aug 17 Javascript
微信小程序-消息提示框实例
Nov 24 Javascript
使用Vue实现图片上传的三种方式
Jul 17 Javascript
vue.js指令v-for使用以及下标索引的获取
Jan 31 Javascript
JS module的导出和导入的实现代码
Feb 25 Javascript
泛谈JS逻辑判断选择器 || &&
May 24 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
Apr 22 Javascript
javascript实现打砖块小游戏(附完整源码)
Sep 18 Javascript
微信小程序如何播放腾讯视频的实现
Sep 20 #Javascript
Vue+iview+webpack ie浏览器兼容简单处理
Sep 20 #Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
Sep 20 #Javascript
微信用户访问小程序的登录过程详解
Sep 20 #Javascript
解决layUI的页面显示不全的问题
Sep 20 #Javascript
小程序如何获取多个formId实现详解
Sep 20 #Javascript
SSM+layUI 根据登录信息显示不同的页面方法
Sep 20 #Javascript
You might like
深入分析php中接口与抽象类的区别
2013/06/08 PHP
PHP实现图片压缩的两则实例
2014/07/19 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
细品javascript 寻址,闭包,对象模型和相关问题
2009/04/27 Javascript
JS window.opener返回父页面的应用
2009/10/24 Javascript
js 程序执行与顺序实现详解
2013/05/13 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
JavaScript是如何实现继承的(六种方式)
2016/03/31 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
2017/04/01 Javascript
w3c编程挑战_初级脚本算法实战篇
2017/06/23 Javascript
Vue 动态设置路由参数的案例分析
2018/04/24 Javascript
Vue.JS实现垂直方向展开、收缩不定高度模块的JS组件
2018/06/19 Javascript
3分钟了解vue数据劫持的原理实现
2019/05/01 Javascript
vue中如何添加百度统计代码
2020/12/19 Vue.js
Python httplib,smtplib使用方法
2008/09/06 Python
Python引用(import)文件夹下的py文件的方法
2014/08/26 Python
Windows下Python的Django框架环境部署及应用编写入门
2016/03/10 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
python3 flask实现文件上传功能
2020/03/20 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
2019/08/18 Python
使用 Python 读取电子表格中的数据实例详解
2020/04/17 Python
Bootstrap 学习分享
2012/11/12 HTML / CSS
英国儿童家具专卖店:GLTC
2016/09/24 全球购物
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
ONLY瑞典官网:世界知名服装品牌
2018/06/19 全球购物
优秀大学生的自我评价
2014/01/16 职场文书
经典英文广告词
2014/03/18 职场文书
乡党委干部党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
巾帼文明岗汇报材料
2014/12/24 职场文书
2015年质量管理工作总结范文
2015/05/18 职场文书
导游词之西安大清真寺
2019/12/17 职场文书
redis配置文件中常用配置详解
2021/04/14 Redis
Python基础之元类详解
2021/04/29 Python
用Python selenium实现淘宝抢单机器人
2021/06/18 Python
centos8安装MongoDB的详细过程
2021/10/24 MongoDB
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技