vue中directives的用法
Vue中directives的用法
关于 vue 中 directives 的用法问题,详细可以参考vue官方对directives的解释
当前文章主要讲述directives怎么用,directives做权限按钮的功能
###1. directives 怎么用###
不错的示例,可以参考下,点击访问
directives 在生命周期内用
export default {data() {return { };},directives:{'local-test':function(el,binding,vnode){/** el可以获取当前dom节点,并且进行编译,也可以操作事件 **//** binding指的是一个对象,一般不用 **//** vnode 是 Vue 编译生成的虚拟节点 **/el.style.border="1px solid red"; //操作style所有样式console.log(el.value); //获取v-model的值console.log(el.dataset.name) //data-name绑定的值,需要el.dataset来获取console.log(vnode.context.$route); //获取当前路由信息}},components:{},filters:{},watch:{}
}
###2. directives 做权限按钮的功能###
directives 在全局main.js中注册
路由配置:
path: '/permission',component: Layout,name: '权限测试',meta: { btnPermissions: ['admin','supper','normal'] }, //页面需要的权限children: [{path: 'supper',component: _import('system/supper'),name: '权限测试页',meta: { btnPermissions: ['admin','supper'] } //页面需要的权限},{path: 'normal',component: _import('system/normal'),name: '权限测试页',meta: { btnPermissions: ['admin'] } //页面需要的权限}]
自定义指令:
import Vue from 'vue'
/**权限指令**/
const has = Vue.directive('has', {bind: function (el, binding, vnode) {// 获取按钮权限let btnPermissions = vnode.context.$route.meta.btnPermissions.split(",");if (!Vue.prototype.$_has(btnPermissions)) {el.parentNode.removeChild(el);}}
});
// 权限检查方法
Vue.prototype.$_has = function (value) {let isExist = false;let btnPermissionsStr = sessionStorage.getItem("btnPermissions");if (btnPermissionsStr == undefined || btnPermissionsStr == null) {return false;}if (value.indexOf(btnPermissionsStr) > -1) {isExist = true;}return isExist;
};
export {has}/*然后在main.js文件引入文件*/
import has from './public/js/btnPermissions.js';/*页面中按钮只需加v-has即可*/
<el-button @click='editClick' type="primary" v-has>编辑</el-button>
vue中directives的用法相关推荐
- vue中定时器一般用法,定时器函数传参以及清除定时器
一.vue中定时器一般用法(举个例子) 显示当前时间, setInterval()方法会每秒执行一次函数,类似手表功能: <template><div class="use ...
- vue中watch的用法
在vue中,使用watch来响应数据的变化.watch的用法大致有三种.下面代码是watch的一种简单的用法: <input type="text" v-model=&quo ...
- vue中this.init用法_Vue中的this.$options.data()和this.$data用法说明
问题 项目里遇到一个问题,用this.$options.data()重置组件data时,data()里用this获取的props或method都为undefined,代码简化如下: export de ...
- vue中props的用法
vue使用props的用法 日常编程中都会用到父组件用子组件.子用父的情况,下面先介绍一种子传父的情况 1.在父组件中 (1).首先是在其定义一个list属性以存储其数据值 (2).定义一个绑定属性& ...
- vue中@oninput的用法
.vue文件其实是一个组件,今天这篇文章要讲的是.vue文件中监听input的输入值变化事件.需求是这页面中,改变input的值,就调用一个事件,第一想到的是oninput. oninput 事件在用 ...
- vue中$root的用法
vue中$root是用来访问根组件的,用法: this.$root.根组件属性 代码: main.js: new Vue({data(){return{isUpdate:true //根组件属性}}, ...
- vue 中provide的用法_聊聊Vue中provide/inject的应用详解
众所周知,在组件式开发中,最大的痛点就在于组件之间的通信.在 Vue 中,Vue 提供了各种各样的组件通信方式,从基础的 props/$emit 到用于兄弟组件通信的 EventBus,再到用于全局数 ...
- Vue中 $ref 的用法
ref 被用来给DOM元素或子组件注册引用信息.引用信息会根据父组件的 $refs 对象进行注册.如果在普通的DOM元素上使用,引用信息就是元素; 如果用在子组件上,引用信息就是组件实例 注意:只要想 ...
- vue中$bus的用法及$emit、$on、$off的使用
vue中 $bus 一般与 $emit. $on. $off 连用,一般用在任意组件间的通信,即 $bus 用来传递非父子关系的数据. 如两个组件之间传递数据: 子组件1 this.$bus.$emi ...
最新文章
- 月英爱耀承(帮别人名字作诗)
- 怎样将两个html页面合并,如何把WORD的两个页面合并在一起?
- 第八天- linux目录结构详细介绍
- 【2018.3.24】模拟赛之一-ssl2545 奇数【水题】
- 算法题解:连续子数组的最大和及其下标
- golang实现聊天室(一)
- 从最大似然到EM算法浅解(转载)
- python爬虫加密空间_Python爬虫进阶必备 | XX同城加密分析
- vue移动端通过px动态计算图片宽高_vue图片宽高自适应_移动web图片高度自适应的解决方案...
- 那些程序员身上共有的属性,这就是他为什么比你进步快的原因!
- “每天AI资讯这么多!该看哪些?”推荐一份优质资料清单
- BZOJ1076: [SCOI2008]奖励关【状压DP+期望DP】
- python调用hive与java调用区别_python 调用hive查询实现类似存储过程
- SQLServer数据库备份与还原
- 图像识别用python还是matlab_用于图像识别的五大最佳编程语言!
- LoadRunner视频教程地址
- 如何成为一名数据分析师 | 推荐收藏
- 利用Python+Gephi生成刀塔霸业棋子关系图
- Windows Terminal+zsh
- Eclipse中同时打开多个控制台(Console)