当前位置: 首页 > news >正文

VUE3注册指令的方法

指令注册只能全局指令和选项式页面指令,composition api没有页面指令

选项式页面指令
<template><div class="home"><h3>自定义指令</h3><div class="from"><el-input type="text" v-focus v-model="name" /></div></div>
</template>
​
<script>export default {data() {return {name: ''}},directives: {focus: {mounted(el, binding, vnode) {// el代表DOM实例// binding获取到传入的参数及验证v-focus.a.b.c的修饰符,获取其中的a、b、c// vnode获取当前的虚拟DOMconsole.log('el', el, binding, vnode);console.log('el.style',el.style);el.style.border = '1px solid red'el.focus()}}}}
</script>
​
<style lang="scss" scoped>
.home{display: flex;// justify-content: center;flex-direction: column;align-items: center;
}
.from{width: 20%;
}
</style>
全局指令
// main.js
import {createApp} from 'vue'
import App from './App'
// 引入指令文件
import hasPermi from './directive/hasPermi'
const app = createApp(App)
// 注册指令
app.directive('hasPermi', hasPermi)
​
app.mount('#app')

模拟按钮权限

// /api/role.js
/*** todo: 模拟权限按钮*/
// 数据操作返回的接口返回值
export const roleUser = ['user:admin:update', 'user:admin:delete', 'user:admin:add', 'user:admin:search', 'user:admin:list'
]
// /directive/hasPermi
// 获取根据用户获取用户按钮权限
import  { roleUser } from '@/api/role';
// 按钮权限
export default {mounted(el, binding, vnode) {const { value } = bindingconst all_permission = "*:*:*";// 后端返回的角色按钮权限const permissions = roleUserif (value && value instanceof Array && value.length > 0) {// 前端定义的const permissionFlag = valueconst hasPermissions = permissions.some(permission => {return all_permission === permission || permissionFlag.includes(permission)})console.log('hasPermissions', hasPermissions);if (!hasPermissions) {el.parentNode && el.parentNode.removeChild(el)}} else {throw new Error(`请设置操作权限标签值`)}}
}

页面使用

<template><div class="home"><div :style="{color: nowColor }">当前颜色:{{ nowColor }}</div><div class="event"><el-button class="bg-lime-500" type="success" @click="alterColor">改变颜色</el-button></div><hr /><div class="directives"><h2>自定义显示按钮</h2><!-- 该用户没权限,所以不显示 --><el-button v-hasPermi="['user:admin:detail']">详情</el-button></div></div>
</template>

相关文章:

VUE3注册指令的方法

指令注册只能全局指令和选项式页面指令,composition api没有页面指令 选项式页面指令 <template><div class"home"><h3>自定义指令</h3><div class"from"><el-input type"text" v-focus v-model"name&q…...

【Python】 Python 字典查询:‘has_key()‘ 方法与 ‘in‘ 关键字的比较

基本原理 在 Python 中&#xff0c;字典&#xff08;dict&#xff09;是一种非常常用的数据结构&#xff0c;用于存储键值对。字典的查询操作是编程中常见的任务之一。在 Python 2.x 版本中&#xff0c;has_key() 方法被用来检查字典中是否存在某个键。然而&#xff0c;在 Pyt…...

IDEA通过tomcat运行注意事项

配置run--》edit configurations 以下的A B部分要保持一致 A和B的路径要保持一致...

Unity Hub 添加模块报错 Validation Failed 的解决办法

提供两种方法&#xff0c;请自行选择其中一种。 在C:\Windows\System32\drivers\etc\hosts中添加下面的内容并保存后&#xff0c;完全关闭Unity Hub并重新打开&#xff0c;再次尝试下载刚刚失败的模块。 127.0.0.1 public-cdn.cloud.unity3d.com 127.0.0.1 public-cdn.cloud.…...

软件功能测试的类型和流程分享

在现代社会&#xff0c;软件已经成为人们生活中不可或缺的一部分&#xff0c;而在软件的开发过程中&#xff0c;功能测试是不可或缺的环节。软件功能测试指的是对软件系统的功能进行检查和验证&#xff0c;以确保软件在各种情况下能够正常运行&#xff0c;并且能够按照用户需求…...

【C语言】atoi函数的使用及模拟实现

atoi (ascii to integer)&#xff0c;是把参数 str 所指向的字符串转换为一个整数&#xff08;int类型&#xff09;的库函数。 使用场景 引子&#xff1a; 有兴趣的朋友可以听我逐句翻译一下cpluscplus.com里的这段解释&#xff08;要考六级了练一下&#xff09;&#xff1a; …...

Golang:使用bndr/gotabulate实现美观的打印表格数据

bndr/gotabulate 可以使用 Go 语言简单、美观的打印表格数据 文档 https://pkg.go.dev/github.com/bndr/gotabulatehttps://github.com/bndr/gotabulate 安装 go get github.com/bndr/gotabulate代码示例 package mainimport ("fmt""github.com/bndr/gotab…...

充电宝哪款好用?什么牌子充电宝耐用?充电宝选购要点总结

随着科技的飞速发展&#xff0c;充电宝已成为现代生活的必备之物。无论是日常通勤、旅行出差&#xff0c;还是在紧急情况下&#xff0c;充电宝都能为我们的电子设备提供可靠的电力支持。然而&#xff0c;面对市场上众多品牌和型号的充电宝&#xff0c;如何选择一款性价比高的充…...

【启程Golang之旅】基本变量与类型讲解

欢迎来到Golang的世界&#xff01;在当今快节奏的软件开发领域&#xff0c;选择一种高效、简洁的编程语言至关重要。而在这方面&#xff0c;Golang&#xff08;又称Go&#xff09;无疑是一个备受瞩目的选择。在本文中&#xff0c;带领您探索Golang的世界&#xff0c;一步步地了…...

使用docker部署项目

一、docker私有镜像仓库 1、docker私有镜像仓库 库&#xff08;Repository&#xff09;是集中存放镜像的地方&#xff0c;又分为公共镜像和私有仓库。 当我们执行docker pull xxx的时候&#xff0c;它实际上是从registry.docker.com这个地址去查找&#xff0c;这就是Docker公…...

智慧林业云巡平台 客户端和移动端(支持语音和视频)自动定位巡护,后端离线路线监测

目前现状 无法客观、方便地掌握护林员的到位情况&#xff0c;因而无法有效地保证巡护人员按计划要求&#xff0c;按时按周期对所负责的林区开展巡护&#xff0c;使巡护工作的质量得不到保证。遇到火情、乱砍滥伐等灾情时无法及时上报处理&#xff0c;现场状况、位置等信息描述…...

【最优化方法】实验三 无约束最优化方法的MATLAB实现

实验的目的和要求&#xff1a;通过本次实验使学生进一步熟悉掌握使用MATLAB软件&#xff0c;并能利用该软件进行无约束最优化方法的计算。 实验内容&#xff1a; &#xff11;、最速下降法的MATLAB实现 &#xff12;、牛顿法的MATLAB实现 &#xff13;、共轭梯度法的MATLAB…...

kafka-偏移量图解

生产者偏移量&#xff1a;生产者发送消息时写入到哪个位置&#xff08;主题的每个分区会存储一个 leo 即将写入消息的偏移量&#xff09;&#xff0c;每次写完消息 leo 会 1 消费者偏移量&#xff1a;消费者从哪个位置开始消费消息&#xff0c;小于等于 leo&#xff0c;每个组…...

内网安全--隧道技术-MSF上线本地

免责声明:本文仅做技术交流与学习... 不得不说,小白最近也是用上了viper,这里要特别感谢一下my bro 北岭敲键盘的荒漠猫 MSF--viper: --生成马子-->上线 --进入meterpreter. 1-查看路由,添加路由. 查看路由信息 : run autoroute -p run post/multi/manage/autoroute 添加…...

初识STM32单片机-TIM定时器

初识STM32单片机-TIM定时器 一、定时器概述二、定时器类型2.1 基本定时器(TIM6和TIM7)2.2 通用定时器(TIM2、TIM3、TIM4和TIM5)2.3 高级定时器(TIM1和TIM8) 三、定时中断基本结构和时基单元工作时序3.1 定时器基本结构3.2 预分频器时序3.3 计数器时序3.3.1 计数器有无预装时序(…...

NSSCTF-Web题目3

目录 [BJDCTF 2020]easy_md5 1、知识点 2、题目 3、思路 [ZJCTF 2019]NiZhuanSiWei 1、知识点 2、题目 3、思路 第一层 第二层 第三层 [BJDCTF 2020]easy_md5 1、知识点 弱比较&#xff0c;强比较、数组绕过、MD5加密 2、题目 3、思路 1、首先我们跟着题目输入&a…...

基于Java实现震中附近风景区预警可视化分析实践

目录 前言 一、空间数据说明 1、表结构信息展示 2、空间范围查询 二、Java后台开发实现 1、模型层设计与实现 2、控制层设计与实现 三、Leaflet地图开发 1、地震震中位置展示 2、百公里风景区列表展示 3、风景区列表展示 4、附近风景区展示 四、总结 前言 地震这类…...

【CTF Web】CTFShow web7 Writeup(SQL注入+PHP+进制转换)

web7 1 阿呆得到最高指示&#xff0c;如果还出问题&#xff0c;就卷铺盖滚蛋&#xff0c;阿呆心在流血。 解法 注意到&#xff1a; <!-- flag in id 1000 -->拦截很多种字符&#xff0c;连 select 也不给用了。 if(preg_match("/\|\"|or|\||\-|\\\|\/|\\*|\…...

ABAP WRITE换行输出

不换行&#xff1a; write hello world!. write 春天马上就到了!. 换行&#xff1a; write hello world!. write /春天马上就到了!. 换行的第二种&#xff1a; write: hello world! ,/,春天马上就到了!....

VUE3学习第一篇:启动ruoyi

1、找到ruoyi的vue3版本 然后下载代码到本地&#xff0c; 我刚开始用的nodejs14报错&#xff0c; 后面换成nodejs16&#xff0c;启动前端成功了。 页面如下图所示...

为什么你的LoRA微调总在step 217崩溃?Python大模型调试日志解密:从`torch._C._debug_dump_tracing_state()`到生产级可观测性

第一章&#xff1a;LoRA微调崩溃现象的系统性认知LoRA&#xff08;Low-Rank Adaptation&#xff09;作为一种高效参数微调技术&#xff0c;虽显著降低显存开销与训练成本&#xff0c;但在实际落地过程中频繁出现训练过程突然中断、梯度爆炸、loss突变为NaN或GPU内存溢出等“崩溃…...

跨境电商注销店铺能规避美国TRO吗?

SellerAegis卖家守护视角下的“弃店思维”与真实法律后果解析在跨境电商卖家遭遇美国TRO&#xff08;Temporary Restraining Order&#xff0c;临时限制令&#xff09;后&#xff0c;最常见的一种想法就是&#xff1a;如果把店铺注销&#xff0c;是不是就可以规避风险&#xff…...

探索800+免费接口:API资源库的高效集成指南

探索800免费接口&#xff1a;API资源库的高效集成指南 【免费下载链接】public-api-lists A collective list of free APIs for use in software and web development &#x1f680; (Clone of https://github.com/public-apis/public-apis) 项目地址: https://gitcode.com/G…...

告别黑屏!手把手教你为NT35510屏幕适配TouchGFX显示驱动(基于STM32CubeIDE)

深度解析NT35510屏幕与TouchGFX的驱动适配实战 在嵌入式GUI开发领域&#xff0c;TouchGFX凭借其流畅的动画效果和高效的渲染引擎&#xff0c;已成为STM32平台上的首选框架之一。然而&#xff0c;当开发者尝试在非官方支持的屏幕上使用TouchGFX时&#xff0c;底层显示驱动的适配…...

Janus-Pro-7B案例展示:同一张设计稿→品牌调性分析→竞品风格迁移生成

Janus-Pro-7B案例展示&#xff1a;同一张设计稿→品牌调性分析→竞品风格迁移生成 Janus-Pro-7B 是一个统一的多模态理解与生成AI模型&#xff0c;能够同时处理图像理解和文生图生成任务。本文将展示如何利用这个强大的模型&#xff0c;从一张设计稿出发&#xff0c;完成品牌调…...

从AI绘画到虚拟主播:拆解AIGC在创意行业的6种落地场景

从AI绘画到虚拟主播&#xff1a;AIGC在创意行业的6大实战场景解析 当Midjourney生成的插画登上《经济学人》封面&#xff0c;当虚拟主播24小时不间断带货&#xff0c;创意行业正经历一场由AIGC驱动的生产力革命。本文将深入拆解6个最具商业价值的落地场景&#xff0c;通过真实…...

LFM2.5-1.2B-Thinking-GGUF快速上手:使用Ollama本地化部署与管理

LFM2.5-1.2B-Thinking-GGUF快速上手&#xff1a;使用Ollama本地化部署与管理 1. 前言&#xff1a;为什么选择Ollama部署本地大模型 最近大语言模型越来越火&#xff0c;但很多朋友发现云端服务要么太贵&#xff0c;要么有隐私顾虑。今天给大家介绍一个超简单的本地部署方案—…...

Qwen3-VL-8B开源AI聊天系统效果展示:多语言混合输入理解能力

Qwen3-VL-8B开源AI聊天系统效果展示&#xff1a;多语言混合输入理解能力 1. 系统概览与核心能力 Qwen3-VL-8B是一个基于通义千问大语言模型的Web聊天应用&#xff0c;提供了简洁美观的PC端聊天界面。这个完整的AI聊天系统包含前端界面、反向代理服务器和vLLM推理后端&#xf…...

【Linux第十四章】文件系统

前言 &#x1f680;在日常开发里&#xff0c;我们几乎每天都在和文件打交道&#xff1a;打开源码、读取日志、写入配置、删除临时文件。但从操作系统的视角看&#xff0c;磁盘上天然存在的并不是“文件”这种概念&#xff0c;底层真正能被访问的&#xff0c;是一块一块的存储单…...

Seafile社区版12.0部署实战:从Docker Compose到企业级定制

1. 为什么选择Seafile社区版12.0&#xff1f; 如果你正在寻找一个开源的、可私有化部署的企业级文件同步与共享解决方案&#xff0c;Seafile社区版12.0绝对值得考虑。作为一个长期使用各种云存储解决方案的运维工程师&#xff0c;我发现Seafile在性能、稳定性和功能完整性方面都…...