Vue 3 中的 el-tooltip 详解:语法、示例及与其他框架对比

目录

  • 前言
  • 1. 基本知识
  • 2. 实战Demo

前言

🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF

1. 基本知识

el-tooltip 是 Element Plus(Vue 3 组件库)中的一个用于提示的组件,它可以在用户悬停或点击元素时显示额外信息。通常用于按钮、图标等需要提供额外描述的地方

基本语法如下:

<el-tooltip content="提示内容" placement="top"><el-button>悬停查看</el-button>
</el-tooltip>

主要属性如下:

属性名说明类型默认值
content显示的提示内容string
placement提示框出现的位置(top, right, bottom, left等)stringbottom
trigger触发方式(hover, click, focus, manual)stringhover
effect主题样式(dark 或 light)stringdark
disabled是否禁用 tooltipbooleanfalse
show-after延迟显示(毫秒)number0
hide-after延迟隐藏(毫秒)number0

基本的Demo:

<template><div><el-tooltip content="这是一个提示" placement="top"><el-button type="primary">悬停查看</el-button></el-tooltip><el-tooltip content="点击触发" placement="right" trigger="click"><el-button type="success">点击查看</el-button></el-tooltip><el-tooltip content="焦点触发" placement="bottom" trigger="focus"><el-input placeholder="输入框提示"></el-input></el-tooltip><el-tooltip content="手动触发" v-model="visible"><el-button @click="visible = !visible">手动切换</el-button></el-tooltip></div>
</template><script setup>
import { ref } from 'vue';
const visible = ref(false);
</script>

el-tooltip 与其他框架对比

框架/库组件名主要差异点
Element Plusel-tooltip基于 Vue 3,支持 v-model 控制显示状态,可搭配 el-button、el-input 等
Ant Design Vuea-tooltip需使用 title 作为提示内容,placement 选项更丰富
Bootstrap Vueb-tooltip依赖 Popper.js,使用 target 绑定元素
Vuetifyv-tooltip通过 activator 绑定目标元素,可结合 v-model 控制

结合代码进行理解:

<template><el-table :data="tooltipData" border style="width: 100%"><el-table-column prop="framework" label="框架" width="180"></el-table-column><el-table-column prop="component" label="组件名" width="180"></el-table-column><el-table-column prop="difference" label="主要差异点"></el-table-column></el-table><el-tooltip content="Element Plus Tooltip" placement="top"><el-button type="primary">Element Plus</el-button></el-tooltip><a-tooltip title="Ant Design Vue Tooltip"><a-button type="primary">Ant Design Vue</a-button></a-tooltip><b-tooltip target="bootstrapBtn" title="Bootstrap Vue Tooltip"></b-tooltip><b-button id="bootstrapBtn" variant="primary">Bootstrap Vue</b-button><v-tooltip bottom><template v-slot:activator="{ on, attrs }"><v-btn color="primary" v-bind="attrs" v-on="on">Vuetify</v-btn></template><span>Vuetify Tooltip</span></v-tooltip>
</template><script setup>
import { ref } from 'vue';const tooltipData = ref([{ framework: 'Element Plus', component: 'el-tooltip', difference: '支持 Vue 3,`v-model` 控制显示' },{ framework: 'Ant Design Vue', component: 'a-tooltip', difference: '使用 `title` 设置提示内容' },{ framework: 'Bootstrap Vue', component: 'b-tooltip', difference: '基于 Popper.js,需要 `target` 绑定' },{ framework: 'Vuetify', component: 'v-tooltip', difference: '通过 `activator` 绑定目标元素' }
]);
</script>

总的来说:

  • el-tooltip 适用于 Vue 3,可与 Element Plus 组件无缝集成
  • 相比其他框架,如 a-tooltip(Ant Design Vue)和 b-tooltip(Bootstrap Vue),el-tooltip 具有更直观的 v-model 绑定和自定义选项
  • v-tooltip(Vuetify)更适合 Material Design 风格,并支持 activator 绑定

2. 实战Demo

原先实战引用过:Vue3优化表单标签与布局,解决文字过长问题(附Demo)

<el-tooltip v-if="showColor"effect="dark":content="$t('navbar.color')"placement="bottom"><div class="top-bar__item"><top-color></top-color></div>
</el-tooltip>
<el-tooltip v-if="showDebug"effect="dark":content="logsFlag?$t('navbar.bug'):logsLen+$t('navbar.bugs')"placement="bottom"><div class="top-bar__item"><top-logs></top-logs></div>
</el-tooltip>
<el-tooltip v-if="showLock"effect="dark":content="$t('navbar.lock')"placement="bottom"><div class="top-bar__item"><top-lock></top-lock></div>
</el-tooltip>
<el-tooltip v-if="showTheme"effect="dark":content="$t('navbar.theme')"placement="bottom"><div class="top-bar__item top-bar__item--show"><top-theme></top-theme></div>
</el-tooltip>
<el-tooltip effect="dark":content="$t('navbar.notice')"placement="bottom"><div class="top-bar__item top-bar__item--show"><top-notice></top-notice></div>
</el-tooltip>
<el-tooltip effect="dark":content="$t('navbar.language')"placement="bottom"><div class="top-bar__item top-bar__item--show"><top-lang></top-lang></div>
</el-tooltip>
<el-tooltip v-if="showFullScren"effect="dark":content="isFullScren?$t('navbar.screenfullF'):$t('navbar.screenfull')"placement="bottom"><div class="top-bar__item"><i :class="isFullScren?'icon-tuichuquanping':'icon-quanping'"@click="handleScreen"></i></div>
</el-tooltip>

基本方法如下:

handleScreen() {fullscreenToggel();
},
setCollapse() {this.$store.commit("SET_COLLAPSE");
},
setScreen() {this.$store.commit("SET_FULLSCREN");
},
logout() {this.$confirm(this.$t("logoutTip"), this.$t("tip"), {confirmButtonText: this.$t("submitText"),cancelButtonText: this.$t("cancelText"),type: "warning"}).then(() => {this.$store.dispatch("LogOut").then(() => {resetRouter();this.$router.push({path: "/login"});});});
}

截图如下:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/70438.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Day 31 卡玛笔记

这是基于代码随想录的每日打卡 491. 非递减子序列 给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素&#xff0c;如出现两个整数相等&#xff0…

docker /var/lib/docker/overlay2目录把磁盘空间占满问题

1、查看服务器磁盘空间 df -h果然100%了,docker系统文件把磁盘空间占满了。 2、进入overlay2目录&#xff0c;查找那个容器工作目录占用最高 cd /var/lib/docker/overlay2du -h --max-depth1详见下图 好家伙占用110G&#xff01;复制目录名称2c3c48ccac533c5d4a366d45a19bb9…

02vue3实战-----项目目录详解

02vue3实战-----项目目录详解 1.目录完整结构2.extensions.json文件3.node_modules文件夹4.public文件夹5.src文件夹6.文件.gitignore7.文件env.d.ts8.文件index.html9.文件package-lock.json和文件package.json10.文件README.md11.文件vite.config.ts12.文件tsconfig.json和文…

【蓝桥杯嵌入式】4_key:单击+长按+双击

全部代码网盘自取 链接&#xff1a;https://pan.baidu.com/s/1PX2NCQxnADxYBQx5CsOgPA?pwd3ii2 提取码&#xff1a;3ii2 1、电路图 将4个按键的引脚设置为input&#xff0c;并将初始状态设置为Pull-up&#xff08;上拉输入&#xff09; 为解决按键抖动的问题&#xff0c;我们…

qt部分核心机制

作业 1> 手动将登录项目实现&#xff0c;不要使用拖拽编程 并且&#xff0c;当点击登录按钮时&#xff0c;后台会判断账号和密码是否相等&#xff0c;如果相等给出登录成功的提示&#xff0c;并且关闭当前界面&#xff0c;发射一个跳转信号&#xff0c;如果登录失败&#…

Spring Boot启动内嵌tocmat原理

要研究Spring Boot启动内嵌tomcat的原理&#xff0c;就需要先了解一下Spring Boot自动配置的过程&#xff0c;首先简要的梳理一下springboot自动配置的步骤。 一、SpringBoot自动配置 当SpringBoot应用启动时&#xff0c;EnableAutoConfiguration注解被激活&#xff0c;该注解…

【论文阅读】Comment on the Security of “VOSA“

Comment on the Security of Verifiable and Oblivious Secure Aggregation for Privacy-Preserving Federated Learning -- 关于隐私保护联邦中可验证与遗忘的安全聚合的安全性 论文来源摘要Introduction回顾 VOSA 方案对VOSA不可伪造性的攻击对于类型 I 的攻击对于类型 II 的…

idea隐藏无关文件

idea隐藏无关文件 如果你想隐藏某些特定类型的文件&#xff08;例如 .log 文件或 .tmp 文件&#xff09;&#xff0c;可以通过以下步骤设置&#xff1a; 打开设置 在菜单栏中选择 File > Settings&#xff08;Windows/Linux&#xff09;或 IntelliJ IDEA > Preference…

x64、aarch64、arm与RISC-V64:详解四种处理器架构

x64、aarch64、arm与RISC-V64:详解四种处理器架构 x64架构aarch64架构ARM架构RISC-V64架构总结与展望在计算机科学领域,处理器架构是构建计算机系统的基石,它决定了计算机如何执行指令、管理内存和处理数据。x64、aarch64、arm与RISC-V64是当前主流的四种处理器架构,它们在…

区块链技术:Facebook 重塑社交媒体信任的新篇章

在这个信息爆炸的时代&#xff0c;社交媒体已经成为我们生活中不可或缺的一部分。然而&#xff0c;随着社交平台的快速发展&#xff0c;隐私泄露、数据滥用和虚假信息等问题也日益凸显。这些问题的核心在于传统社交媒体依赖于中心化服务器存储和管理用户数据&#xff0c;这种模…

Redis数据库篇 -- Pipeline

一. 什么是Pipeline 在传统的请求-响应模式中&#xff0c;客户端与服务器之间的通信流程如下&#xff1a; 客户端发送一个命令到服务器。服务器接收命令并执行。服务器将执行结果返回给客户端。客户端接收结果后&#xff0c;发送下一个命令 在这种传统的模式下&#xff0c;…

[权限提升] Linux 提权 维持 — 系统错误配置提权 - 计划任务提权

关注这个专栏的其他相关笔记&#xff1a;[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01&#xff1a;Linux 计划任务提权原理 Linux 计划任务提权是由于管理员配置不当&#xff0c;导致以 Root 权限运行的计划任务文件可以被低权限用户修改&#xff0c;从而被攻击者利用&#…

GB/T 43698-2024 《网络安全技术 软件供应链安全要求》标准解读

一、43698-2024标准图解 https://mmbiz.qpic.cn/sz_mmbiz_png/rwcfRwCticvgeBPR8TWIPywUP8nGp4IMFwwrxAHMZ9Enfp3wibNxnfichT5zs7rh2FxTZWMxz0je9TZSqQ0lNZ7lQ/640?wx_fmtpng&fromappmsg 标准在线预览&#xff1a; 国家标准|GB/T 43698-2024 相关标准&#xff1a; &a…

记一次golang环境的变化

前两天编译打包了了个文件&#xff0c;把env的 goos 搞坏了 导致运行项目一直报错 先是这样 go: unsupported GOOS/GOARCH pair windows/amd64再是这样 /amd64supported GOOS/GOARCH pair linux咱就说&#xff0c;咱也是知道环境配置的有问题 &#xff08; go env GOOS &…

QT笔记——多语言翻译

文章目录 1、概要2、多语言切换2.1、结果展示2.2、创建项目2.2、绘制UI2.2、生成“.st”文件2.4、生成“.qm”文件2.5、工程demo 1、概要 借助QT自带的翻译功能&#xff0c;实现实际应用用进行 “多语言切换” 2、多语言切换 2.1、结果展示 多语言切换 2.2、创建项目 1、文件…

【鸿蒙HarmonyOS Next实战开发】实现ArkTS/JS和C/C++的交互-Node-API

一、HarmonyOS Node-API简介 在HarmonyOS应用开发中&#xff0c;通常以ArkTS/JS语言为主&#xff0c;但在一些特殊场景下&#xff0c;例如游戏开发、物理模拟等&#xff0c;由于对性能、效率等有较高要求&#xff0c;需要借助现有的C/C库来实现。为了满足这种需求&#xff0c;…

mac环境下,ollama+deepseek+cherry studio+chatbox本地部署

春节期间&#xff0c;deepseek迅速火爆全网&#xff0c;然后回来上班&#xff0c;我就浅浅的学习一下&#xff0c;然后这里总结一下&#xff0c;我学习中&#xff0c;总结的一些知识点吧&#xff0c;分享给大家。具体的深度安装部署&#xff0c;这里不做赘述&#xff0c;因为网…

深度学习01 神经网络

目录 神经网络 ​感知器 感知器的定义 感知器的数学表达 感知器的局限性 多层感知器&#xff08;MLP, Multi-Layer Perceptron&#xff09; 多层感知器的定义 多层感知器的结构 多层感知器的优势 偏置 偏置的作用 偏置的数学表达 神经网络的构造 ​神经网络的基本…

电脑右下角小喇叭没反应怎么回事,快速解决方案

当电脑右下角的小喇叭&#xff08;音量图标&#xff09;没有反应时&#xff0c;可以尝试以下快速解决方案&#xff1a; 一、基础检查与操作 检查键盘音量键&#xff1a; 按下键盘上的音量增加或减少键&#xff0c;或尝试Fn音量键&#xff08;部分笔记本需组合键&#xff09;&a…

P3654 First Step (ファーストステップ)(贪心算法)

#include<bits/stdc.h> using namespace std;int main() {int r,c,k;cin>>r>>c>>k;char a[105][105];int ans0;for(int i0;i<r;i){for(int j0;j<c;j){cin>>a[i][j];}}for(int i0;i<r;i){int cnt0; // 用来记录连续空地的数量for(int j…