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不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)
Feb 05 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
May 08 Javascript
JS数组的赋值介绍
Mar 10 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
May 25 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
Jul 27 Javascript
js遍历json对象所有key及根据动态key获取值的方法(必看)
Mar 09 Javascript
js 数字、字符串、布尔值的转换方法(必看)
Apr 07 Javascript
JS图片轮播与索引变色功能实例详解
Jul 06 Javascript
node+vue实现用户注册和头像上传的实例代码
Jul 20 Javascript
详解升级react-router 4 踩坑指南
Aug 14 Javascript
vue实现点击选中,其他的不选中方法
Sep 05 Javascript
zepto.js 实时监听输入框的方法
Dec 04 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 生成WML页面方法详解
2009/08/09 PHP
PHP遍历文件夹与文件类及处理类用法实例
2014/09/23 PHP
PHP对文件夹递归执行chmod命令的方法
2015/06/19 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
2016/06/13 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
2016/07/14 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
2016/12/09 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
js函数返回多个返回值的示例代码
2013/11/05 Javascript
JS中常用的正则表达式
2016/09/29 Javascript
使用jQuery的ajax方法向服务器发出get和post请求的方法
2017/01/13 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
2017/02/24 Javascript
express express-session的使用小结
2018/12/12 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
vue组件库的在线主题编辑器的实现思路
2020/04/03 Javascript
python 正则式使用心得
2009/05/07 Python
Python生成随机密码的方法
2017/06/16 Python
Python实现简易Web爬虫详解
2018/01/03 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
2019/05/27 Python
华为2019校招笔试题之处理字符串(python版)
2019/06/25 Python
Pytorch 实现权重初始化
2019/12/31 Python
解决numpy矩阵相减出现的负值自动转正值的问题
2020/06/03 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
CSS3解决移动页面上点击链接触发色块的问题
2016/06/03 HTML / CSS
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
在HTML5 Canvas中放入图片和保存为图片的方法
2014/05/03 HTML / CSS
HTML5 层的叠加的实现
2020/07/07 HTML / CSS
企业管理专业个人求职信范文
2013/09/24 职场文书
语文复习计划
2015/01/19 职场文书
学生通报表扬范文
2015/05/04 职场文书
一个家长教育孩子的心得体会
2016/01/15 职场文书
学长教您写论文:经验总结
2019/07/09 职场文书
导游词之山西关帝庙
2019/11/01 职场文书
Python中Selenium对Cookie的操作方法
2021/07/09 Python