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 相关文章推荐
JavaScript 设计模式学习 Singleton
Jul 27 Javascript
js 模拟实现类似c#下的hashtable的简单功能代码
Jan 24 Javascript
Javascript 实用小技巧
Apr 07 Javascript
基于jQuery的遍历同id元素 并响应事件的代码
Jun 14 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
Aug 05 Javascript
jQuery实现的网页竖向菜单效果代码
Aug 26 Javascript
简单对比分析JavaScript中的apply,call与this的使用
Dec 04 Javascript
javascript监听页面刷新和页面关闭事件方法详解
Jan 09 Javascript
pm2启动ssr失败的解决方法
Jun 29 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&平移轮播效果
Aug 16 Javascript
Vue父组件监听子组件生命周期
Sep 03 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
Oct 29 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完整的日历类(CLASS)
2006/11/27 PHP
mysq GBKl乱码
2006/11/28 PHP
PHP入门学习的几个不错的实例代码
2008/07/13 PHP
PHP中删除变量时unset()和null的区别分析
2011/01/27 PHP
解决CodeIgniter伪静态失效
2014/06/09 PHP
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
PHP 访问数据库配置通用方法(json)
2018/05/20 PHP
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
JavaScript中的关键字"VAR"使用详解 分享
2013/07/31 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
javascript实现框架高度随内容改变的方法
2015/07/23 Javascript
jquery之别踩白块游戏的简单实现
2016/07/25 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
vue.js中过滤器的使用教程
2017/06/08 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
2019/02/27 jQuery
初试vue-cli使用HBuilderx打包app的坑
2019/07/17 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
python dataframe astype 字段类型转换方法
2018/04/11 Python
python批量修改文件编码格式的方法
2018/05/31 Python
python迭代dict的key和value的方法
2018/07/06 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
Python/Django后端使用PIL Image生成头像缩略图
2019/04/30 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
使用python批量转换文件编码为UTF-8的实现
2020/04/03 Python
如何基于Python实现word文档重新排版
2020/09/29 Python
毕业证丢失证明
2014/01/15 职场文书
2014年销售内勤工作总结
2014/12/01 职场文书
导游词之西安骊山
2019/12/20 职场文书
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python