Vue3.0 的自定义指令

我本人也是新手,所以我之前不知道自定义指令一般是在什么场景下用的。 在这里告诉各位新手朋友,我目前遇到的应用场景是在权限控制按钮、文本框等元素显示,就用上了这个自定义指令。我利用自己的一个案例进行介绍。

1.创建一个在util/directive/permission.ts 文件,代码如下:

点击查看代码
export default function(app:any){
app.directive('hasPermission', {
mounted( el: any, binding: any ) {
const {value} = binding;
let permison="article:search,"
let flt=permison.split(',').includes(value[0]);
console.log(flt)
// const usersPermissions = localStorage.getItem('pid')?.split(',');
// let f = usersPermissions?.filter((item:any) => {
// //some会循环所有元素,如果有一个元素满足则返回true并跳出循环,如果都没有则返回false
// return item.indexOf(value) !== -1;
// });
// if (!f) {
// ///如果不满足则通过dom元素销毁这个按钮
// el.parentNode && el.parentNode.removeChild(el);
// }
if(!flt){
el.parentNode && el.parentNode.removeChild(el);
}
}
})
}

2.在man.ts 进行引入,这里的就是做一个全局注册

点击查看代码
import registPermission from './util/directive/permission'
const app =createApp(App)
registPermission(app);

3.使用方式和属性一样,这里的v-hasPermission就是自定义的指令

点击查看代码
` <el-button type="primary" v-hasPermission="['article:search']"></el-button>`

这里我用中括号的原因是为了区分那个双冒号和单冒号。

posted @   linxChou  阅读(166)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示