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实现图片渐变切换兼容ie6/Chrome/Firefox
Aug 02 Javascript
jquery带动画效果幻灯片特效代码
Aug 27 Javascript
JS面向对象编程详解
Mar 06 Javascript
浅析JavaScript中的对象类型Object
May 26 Javascript
Vue.js上下滚动加载组件的实例代码
Jul 17 Javascript
jQuery 利用ztree实现树形表格的实例代码
Sep 27 jQuery
基于Bootstrap表单验证功能
Nov 17 Javascript
Vue服务器渲染Nuxt学习笔记
Jan 31 Javascript
angularjs实现table增加tr的方法
Feb 27 Javascript
一文了解Vue中的nextTick
May 06 Javascript
前端Vue项目详解--初始化及导航栏
Jun 24 Javascript
Python版实现微信公众号扫码登陆
May 28 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
php 正则表达式小结
2009/08/31 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
PHP中require和include路径问题详解
2014/12/25 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
php语法检查的方法总结
2019/01/21 PHP
在 IE 中调用 javascript 打开 Excel 表
2006/12/21 Javascript
学习ExtJS table布局
2009/10/08 Javascript
jQuery 行背景颜色的交替显示(隔行变色)实现代码
2009/12/13 Javascript
jQuery实现360°全景拖动展示
2015/03/18 Javascript
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
jquery实现加载进度条提示效果
2015/11/23 Javascript
jQuery手动点击实现图片轮播特效
2020/04/20 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
js获取隐藏元素的宽高
2017/02/24 Javascript
CentOS 安装NodeJS V8.0.0的方法
2017/06/15 NodeJs
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
动手写一个angular版本的Message组件的方法
2017/12/16 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
layer弹出层自适应高度,垂直水平居中的实现
2019/09/16 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
基于postman获取动态数据过程详解
2020/09/08 Javascript
Python 命令行参数sys.argv
2008/09/06 Python
Python中list查询及所需时间计算操作示例
2018/06/21 Python
Python线程池模块ThreadPoolExecutor用法分析
2018/12/28 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
学生实习推荐信范文
2013/11/26 职场文书
继承公证书
2014/04/09 职场文书
媒矿安全生产承诺书
2014/05/23 职场文书
小学科学教学计划
2015/01/21 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书