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 相关文章推荐
jquery下异步提交表单 异步跨域提交表单
Nov 17 Javascript
jQuery提交表单ajax查询实例代码
Oct 07 Javascript
javascript单页面手势滑屏切换原理详解
Mar 21 Javascript
谈谈因Vue.js引发关于getter和setter的思考
Dec 02 Javascript
Vue.js弹出模态框组件开发的示例代码
Jul 26 Javascript
vue轮播图插件vue-awesome-swiper
Nov 27 Javascript
解决angularjs WdatePicker ng-model的问题
Sep 13 Javascript
详解vue中使用protobuf踩坑记
May 07 Javascript
JavaScript的查询机制LHS和RHS解析
Aug 16 Javascript
layui点击数据表格添加或删除一行的例子
Sep 12 Javascript
vue 实现cli3.0中使用proxy进行代理转发
Oct 30 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
Aug 25 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 cli 方式 在crotab中运行解决
2010/02/08 PHP
php将时间差转换为字符串提示
2011/09/07 PHP
coreseek 搜索英文的问题详解
2013/06/08 PHP
php实现的双向队列类实例
2014/09/24 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
2015/09/22 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
jQuery对象的length属性用法实例
2014/12/27 Javascript
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
vue2.0全局组件之pdf详解
2017/06/26 Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
2018/03/29 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
2018/09/26 Javascript
JQuery animate动画应用示例
2019/05/14 jQuery
JavaScript实现4位随机验证码的生成
2021/01/28 Javascript
Python3.2中Print函数用法实例详解
2015/05/19 Python
在Django中创建动态视图的教程
2015/07/15 Python
详解Django中类视图使用装饰器的方式
2018/08/12 Python
Django接收自定义http header过程详解
2019/08/23 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
Python之关于类变量的两种赋值区别详解
2020/03/12 Python
python 删除系统中的文件(按时间,大小,扩展名)
2020/11/19 Python
Python try except finally资源回收的实现
2021/01/25 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
英国网上电器商店:Electricshop
2020/03/15 全球购物
应届生污水处理求职信
2013/11/06 职场文书
大学本科毕业生求职信范文
2013/12/18 职场文书
函授自我鉴定范文
2014/02/06 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书
婚育证明格式
2015/06/17 职场文书
2016入党积极分子考察评语
2015/12/01 职场文书