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

Vue实战教程:手动封装一个全局可自定义图标提示组件

        在Vue.js应用开发中,提示组件是一个常用的功能,用于向用户展示操作反馈、警告信息或错误提示。虽然Element UI、Vuetify等UI库提供了现成的提示组件,但有时我们可能需要更个性化的提示,比如自定义图标。本文将详细介绍如何手动封装一个全局可自定义图标的提示组件。

一、创建提示组件

首先,我们创建一个名为CustomIconTips.vue的文件,代码如下:

<template><transition name="fade"><div v-if="visible" class="custom-icon-tips" :class="type"><i :class="icon"></i><span>{{ message }}</span></div></transition>
</template><script>
export default {name: 'CustomIconTips',data() {return {visible: false,type: '',message: '',icon: ''};},methods: {showTips(options) {this.type = options.type || 'info';this.message = options.message || '';this.icon = options.icon || '';this.visible = true;setTimeout(() => {this.visible = false;}, options.duration || 3000);}}
};
</script><style scoped>
.custom-icon-tips {position: fixed;top: 20px;left: 50%;transform: translateX(-50%);padding: 10px 20px;color: #fff;border-radius: 4px;z-index: 9999;display: flex;align-items: center;
}.custom-icon-tips i {margin-right: 10px;
}.fade-enter-active, .fade-leave-active {transition: opacity .5s;
}
.fade-enter, .fade-leave-to {opacity: 0;
}/* 根据不同的类型添加样式 */
.info { background-color: #909399; }
.success { background-color: #67c23a; }
.warning { background-color: #e6a23c; }
.error { background-color: #f56c6c; }
</style>

二、注册全局组件

接下来,在main.jsmain.ts文件中,我们将CustomIconTips组件注册为全局组件:

import Vue from 'vue';
import CustomIconTips from './components/CustomIconTips.vue';Vue.component('CustomIconTips', CustomIconTips);

三、挂载组件到全局

我们需要在Vue实例中挂载这个组件,以便它可以在全局范围内使用:

new Vue({el: '#app',render: h => h(App),mounted() {const TipsConstructor = Vue.extend(CustomIconTips);const tipsInstance = new TipsConstructor();tipsInstance.$mount(document.createElement('div'));document.body.appendChild(tipsInstance.$el);Vue.prototype.$tips = tipsInstance;}
});

四、使用自定义图标提示组件

现在,你可以在任何组件中通过以下方式来显示带有自定义图标的提示:

this.$tips.showTips({type: 'success', // 提示类型message: '操作成功!', // 提示信息icon: 'el-icon-check', // 自定义图标类名duration: 2000 // 提示显示时间(毫秒)
});

通过以上步骤,我们成功封装了一个全局可自定义图标的提示组件。这个组件可以根据需求自定义提示类型、图标和显示时间,非常灵活。通过全局注册和挂载,我们可以在任何组件中方便地使用它,大大提高了开发效率和用户体验。 

 

 

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 企业如何高效应对多类型知识产权事务的复杂挑战?
  • Vue中集中常见的布局方式
  • 1.分页查询(后端)—— Vue3 + SpringCloud 5 + MyBatisPlus + MySQL 项目系列(基于 Zulu 11)
  • MySQL事务、视图、索引、恢复、备份、导入导出的学习
  • 代码随想录打卡Day41
  • 研一奖学金计划2024/9/23有感
  • 【ARM】armv8的虚拟化深度解读
  • 神经网络激活函数
  • API代理是什么?解读其原理与作用
  • 累加求和-C语言
  • [大语言模型-论文精读] Diffusion Model技术-通过时间和空间组合扩散模型生成复杂的3D人物动作
  • 大模型prompt先关
  • 【网络安全】密码学的新进展
  • 大模型之基准测试集(Benchmark)-给通义千问2.0做测评的10个权威测基准测评集
  • windows使用JEnv实现一键临时或全局切换java版本
  • 【RocksDB】TransactionDB源码分析
  • create-react-app做的留言板
  • HTML中设置input等文本框为不可操作
  • JavaWeb(学习笔记二)
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • PAT A1092
  • Terraform入门 - 1. 安装Terraform
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 电商搜索引擎的架构设计和性能优化
  • 分布式熔断降级平台aegis
  • 简单易用的leetcode开发测试工具(npm)
  • 利用DataURL技术在网页上显示图片
  • 配置 PM2 实现代码自动发布
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 我与Jetbrains的这些年
  • 一个完整Java Web项目背后的密码
  • 正则表达式小结
  • ​插件化DPI在商用WIFI中的价值
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ######## golang各章节终篇索引 ########
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • (145)光线追踪距离场柔和阴影
  • (done) 声音信号处理基础知识(2) (重点知识:pitch)(Sound Waveforms)
  • (Git) gitignore基础使用
  • (windows2012共享文件夹和防火墙设置
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)学习JVM —— 垃圾回收机制
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (四)事件系统
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET未来路在何方?
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • ;号自动换行
  • ??javascript里的变量问题
  • @EnableAsync和@Async开始异步任务支持
  • [ solr入门 ] - 利用solrJ进行检索
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?