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 相关文章推荐
你需要知道的10个最佳javascript开发实践小结
Apr 15 Javascript
Mac地址验证的javascript代码
Nov 09 Javascript
JS调试必备的5个debug技巧
Mar 07 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
Mar 12 Javascript
jQuery打字效果实现方法(附demo源码下载)
Dec 18 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
Aug 03 Javascript
深入理解Angular.JS中的Scope继承
Jun 04 Javascript
小程序实现搜索界面 小程序实现推荐搜索列表效果
May 18 Javascript
浅谈vue3中effect与computed的亲密关系
Oct 10 Javascript
JavaScript如何借用构造函数继承
Nov 06 Javascript
微信小程序实现录音功能
Nov 22 Javascript
JavaScript利用html5新方法操作元素类名详解
Nov 27 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
OAuth认证协议中的HMACSHA1加密算法(实例)
2017/10/25 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
2019/03/30 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
XmlUtils JS操作XML工具类
2009/10/01 Javascript
JavaScript 学习笔记(六)
2009/12/31 Javascript
jquery last-child 列表最后一项的样式
2010/01/22 Javascript
基于JQuery的asp.net树实现代码
2010/11/30 Javascript
uploadify 3.0 详细使用说明
2012/06/18 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
2012/08/24 Javascript
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
2015/08/26 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
2016/01/27 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
对vue中methods互相调用的方法详解
2018/08/30 Javascript
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
[50:02]完美世界DOTA2联赛循环赛 Magma vs IO BO2第一场 11.01
2020/11/02 DOTA
下载糗事百科的内容_python版
2008/12/07 Python
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
Django之Mode的外键自关联和引用未定义的Model方法
2018/12/15 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
2019/06/18 Python
python实现简易版学生成绩管理系统
2020/06/22 Python
西班牙灯具网上商店:Lampara.es
2018/06/05 全球购物
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
十一酒店活动方案
2014/02/20 职场文书
项目经理聘任书
2014/03/29 职场文书
《鲁班和橹板》教学反思
2014/04/27 职场文书
我爱读书演讲稿
2014/05/07 职场文书
贫民窟的百万富翁观后感
2015/06/09 职场文书
风之谷观后感
2015/06/11 职场文书
导游词之阳朔遇龙河
2019/12/16 职场文书
Python 视频画质增强
2022/04/28 Python