记一次Vue.js混入mixin的使用(分权限管理页面)


Posted in Javascript onApril 17, 2019

需求背景:在一个后台的管理系统中,不同的用户角色对应不同的用户权限。现要求,同一个页面对有操作权限的用户来说是可操作的,对无操作权限的用户来说是只读的,即操作按钮均失效。系统用Vue.js开发。

一、mixin的概念

官方文档这么说:混入是一种分发Vue组件中可服用功能的非常灵活的方式。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项。

我自己的理解:混入对象具有Vue组件可以声明的所有选项,如[components]、[computed]、[methods]等;当组件使用混入对象时,该组件也同时拥有了混入对象的选项。

二、思路

按照开篇写的需求描述,如果用一般的方法,我们通常会在每个页面的vue文件中,判断当前用户是否具有操作该页面的权限,根据判断结果来展示页面。然而,这种方法会导致大量代码的重复,徒然增加了一些无意义的工作量。因此,需要有一个可以复用的方法。

故此,我们可以把上述的可复用的办法放在混入对象的选项当中。

三、代码展示

在混入对象的computed选项中,我们有这几个方法,来判断用户所拥有的的‘编辑'、‘查看'、‘删除'等权限。

computed: {
  allowedToCreate() {
   return this.hasOperatePermissions('createRole');
  },
  allowedToEdit() {
   return this.hasOperatePermissions('editRole');
  },
  allowedToCheckIn() {
   return this.hasOperatePermissions('checkInRole');
  },
  allowedToDelete() {
   return this.hasOperatePermissions('deleteRole');
  },  
 },

注意,如果普通组件中引用了混入对象,那么这些计算属性会自动成为组件的计算属性。具体如何创建一个混入对象,并且引入该混入对象,这里不细讲,可参考官方文档。

记一次Vue.js混入mixin的使用(分权限管理页面)

记一次Vue.js混入mixin的使用(分权限管理页面)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript Array数组对象的扩展函数代码
May 22 Javascript
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
Aug 14 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
Oct 11 Javascript
window.showModalDialog()返回值的学习心得总结
Jan 07 Javascript
使用JQuery实现智能表单验证功能
Mar 08 Javascript
Bootstrap下拉菜单效果实例代码分享
Jun 30 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
Aug 05 Javascript
通过jsonp获取json数据实现AJAX跨域请求
Jan 22 Javascript
Vue2 SSR渲染根据不同页面修改 meta
Nov 20 Javascript
最简单的vue消息提示全局组件的方法
Jun 16 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
Sep 10 Javascript
详解Webpack抽离第三方类库以及common解决方案
Mar 30 Javascript
详解js获取video任意时间的画面截图
Apr 17 #Javascript
解决vue跨域axios异步通信问题
Apr 17 #Javascript
自定义Vue中的v-module双向绑定的实现
Apr 17 #Javascript
微信公众平台 发送模板消息(Java接口开发)
Apr 17 #Javascript
微信公众平台 客服接口发消息的实现代码(Java接口开发)
Apr 17 #Javascript
vue获取时间戳转换为日期格式代码实例
Apr 17 #Javascript
微信小程序bindinput与bindsubmit的区别实例分析
Apr 17 #Javascript
You might like
多数据表共用一个页的新闻发布
2006/10/09 PHP
php计算十二星座的函数代码
2012/08/21 PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
2013/06/24 PHP
PHP输出日历表代码实例
2015/03/27 PHP
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
Jquery响应回车键直接提交表单操作代码
2014/07/25 Javascript
通过location.replace禁止浏览器后退防止重复提交
2014/09/04 Javascript
ANGULARJS中用NG-BIND指令实现单向绑定的例子
2014/12/08 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
JS扩展方法实例分析
2015/04/15 Javascript
简介JavaScript中的push()方法的使用
2015/06/09 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
JavaScript实现移动端轮播效果
2017/06/06 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
2019/02/22 Javascript
javascript防抖函数debounce详解
2019/06/11 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
2019/06/24 Javascript
Python数据类型详解(一)字符串
2016/05/08 Python
python 二分查找和快速排序实例详解
2017/10/13 Python
使用11行Python代码盗取了室友的U盘内容
2018/10/23 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
2020/01/22 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
详解python 条件语句和while循环的实例代码
2020/12/28 Python
CSS3实现精美横向滚动菜单按钮
2017/04/14 HTML / CSS
海蓝之谜(LA MER)澳大利亚官方商城:全球高端奢华护肤品牌
2017/10/27 全球购物
个人简历自我鉴定
2013/10/11 职场文书
回门宴新郎答谢词
2014/01/12 职场文书
老公爱的承诺书
2014/03/31 职场文书
2014大四本科生自我鉴定总结
2014/10/04 职场文书
2015年班组长工作总结
2015/04/10 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书