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 相关文章推荐
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
Jan 13 Javascript
jquery mobile实现拨打电话功能的几种方法
Aug 05 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
Mar 11 Javascript
微信小程序 教程之WXML
Oct 18 Javascript
JavaScript实现二分查找实例代码
Feb 22 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
Apr 28 Javascript
关于Angular2 + node接口调试的解决方案
May 28 Javascript
详谈js模块化规范
Jul 07 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
Jul 11 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
Aug 14 jQuery
vue监听input标签的value值方法
Aug 27 Javascript
浅谈react useEffect闭包的坑
Jun 08 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
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
jQuery使用手册之三 CSS操作
2007/03/24 Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
2013/12/30 Javascript
JavaScript实现瀑布流布局
2020/06/28 Javascript
jquery自定义右键菜单、全选、不连续选择
2016/03/01 Javascript
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
Vue.js每天必学之方法与事件处理器
2016/09/06 Javascript
基于Javascript实现文件实时加载进度的方法
2016/10/12 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
vue-router 源码之实现一个简单的 vue-router
2018/07/02 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
2018/09/05 Javascript
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
python编程培训 python培训靠谱吗
2018/01/17 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
python实现实时视频流播放代码实例
2020/01/11 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
基于python实现百度语音识别和图灵对话
2020/11/02 Python
中国网上药店领导者:1药网
2017/02/16 全球购物
幼儿园园长岗位职责
2013/11/26 职场文书
求职简历推荐信范文
2013/12/02 职场文书
幼儿园中班评语大全
2014/04/17 职场文书
法学专业毕业生自荐信
2014/06/11 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
假期安全教育广播稿
2014/10/04 职场文书
怀孕辞职信怎么写
2015/02/28 职场文书
物业项目经理岗位职责
2015/04/01 职场文书
公司酒会主持词
2015/07/02 职场文书
会议室管理制度范本
2015/08/06 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
Python django中如何使用restful框架
2021/06/23 Python