如何在 Element Plus 中使用自定义 icon 组件 (非组件库内置icon)

news2024/9/24 17:50:27

先说原理就是将 svg 文件以 vue 组件文件的方式使用

需求:我想要在 Element Plus 得评分组件中使用自定义得图标。
在这里插入图片描述
el-rate v-model="value1" /> 组件本身是支持自定义图标的,但是教程中只说明了如何使用 @element-plus/icons-vue 图标库内置图标。如何使用自己的图标呢。

先看下 el-rate 如何使用内置的自定义图标,

<template>
  <el-rate
    v-model="value"
    :icons="icons"
    :void-icon="ChatRound"
    :colors="['#409eff', '#67c23a', '#FF9900']"
  />
</template>

<script lang="ts" setup>
import { ref } from 'vue'
import { ChatDotRound, ChatLineRound, ChatRound } from '@element-plus/icons-vue'

const value = ref()
const icons = [ChatRound, ChatLineRound, ChatDotRound] // same as { 2: ChatRound, 4: { value: ChatLineRound, excluded: true }, 5: ChatDotRound }
</script>

这里从 @element-plus/icons-vue 导出的图标组件本质上就是一个 svg 组件,这个仓库在打包的时候将 svg 文件转换成了 vue 组件文件。所以我们只需要将 svg 文件包装成一个 vue 组件文件就可以使用自定义图标。

两种方法

这里最简单的方法就是第一种

1. 创建 .vue 文件将 svg 代码粘贴进去

创建一个 RateAct.vue 文件, 将 svg 文件的代码复制进去。记得查看是否 <?xml version="1.0" encoding="UTF-8"?> 标签, 要注释掉。

<script setup lang="ts">
</script>

<template>
  //<?xml version="1.0" encoding="UTF-8"?>
  <svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <title>关闭_close-one (2)@2x</title>
    <g id="数据中心" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linejoin="round">
      <g id="0数据中心_布局+列表" transform="translate(-375.000000, -85.000000)" stroke="#196FFF">
        <g id="快速页签" transform="translate(180.000000, 64.000000)">
          <g id="编组-2备份" transform="translate(120.000000, 12.000000)">
            <g id="关闭_close-one-(2)" transform="translate(76.000000, 10.000000)">
              <path id="路径" d="M6,12 C9.31371,12 12,9.31371 12,6 C12,2.68629 9.31371,0 6,0 C2.68629,0 0,2.68629 0,6 C0,9.31371 2.68629,12 6,12 Z" />
              <line id="路径" x1="7.69701" y1="4.30296" x2="4.3029" y2="7.69707" stroke-linecap="round" />
              <line id="路径" x1="4.30299" y1="4.30296" x2="7.6971" y2="7.69707" stroke-linecap="round" />
            </g>
          </g>
        </g>
      </g>
    </g>
  </svg>
</template>

<style lang="scss"></style>

2. 使用 vite-plugin-svg-icons vite插件

这里默认你会使用 vite-plugin-svg-icons 插件, 一切配置你都已经配好了。 创建一个 RateAct.vue 文件, 代码如下

<script setup lang="ts">
</script>

<template>
  <svg-icon icon-class="sl-rate-act" />
</template>

<style lang="scss"></style>

最后,按照上面处理好之后。然后按照 Element Plus 的自定义 icon 就可以正常使用

评分组件的文档 。

当然你也可以以一举三, 把这种方式复用在别的组件上,例如:按钮组件的 icon 属性

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

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

相关文章

学习Spring的第八天

先对自定义类使用MyComponet的注解&#xff0c;在设置这个MyComponet的的属性(一个 interface接口)&#xff0c;然后&#xff0c;扫描(BaseClassScanUtils.java执行,这文件不重要)当前包下是否有这个注解的类&#xff0c;再用MyComponentBeanFactoryPostProcessor.java(后工厂…

蓝桥杯真题(Python)每日练Day1

说明&#xff1a;在CSP认证的基础上&#xff08;可以看看本人CSP打卡系列的博客&#xff09;备赛2024蓝桥杯&#xff08;Python&#xff09;&#xff0c;本人专业&#xff1a;大数据与数据科学 因此对python要求熟练掌握&#xff0c;通过练习蓝桥杯既能熟悉语法又能锻炼算法和思…

vulnhub-dc2靶场

DC2 配置环境vmware17 nat网络配置 下载地址:DC and Five86 Series Challenges - DC-1 &#xff08;似乎从2024/1/18左右找不到这个资源了&#xff09; 攻击机kali与其在同一网段下 ip:192.168.52.130 信息收集 arp-scan -l #内网探测&#xff0c;扫描目标ip发现目标ip1…

内网穿透Neutrino-Proxy, 中微子代理

中微子代理&#xff08;neutrino-proxy&#xff09;是一个基于netty的、开源的java内网穿透项目。技术栈&#xff1a;Solon、MybatisPlus、Netty遵循MIT许可&#xff0c;因此您可以对它进行复制、修改、传播并用于任何个人或商业行为。官网地址1&#xff1a;https://neutrino-p…

鸿蒙开发环境配置-Windows

背景 入局鸿蒙开发&#xff0c;发现在 Windows 下面配置安装相关环境并没有像 Mac 一样简单&#xff0c;过程中遇到了一些问题记录一下。 Devceo Studio 下载安装 目前鸿蒙的 IDE 最新版是 4.0&#xff0c;通过这个连接可以下载&#xff0c;鸿蒙4.0下载连接。选择符合我们电…

关于前端面试中forEach方法的灵魂7问?

目录 前言 一、forEach方法支持处理异步函数吗&#xff1f; 二、forEach方法在循环过程中能中断吗&#xff1f; 三、forEach 在删除自己的元素后能重置索引吗&#xff1f; 四、forEach 的性能相比for循环哪个好&#xff1f; 五、使用 forEach 会不会改变原来的数组&#…

智能驾驶新浪潮:SSD与UFS存储技术如何破浪前行?-UFS篇

如果说SSD是赛道上的超级跑车&#xff0c;那UFS更像是专为智能汽车定制的高性能轻量化赛车。UFS采用串行接口技术&#xff0c;像是闪电侠一样&#xff0c;将数据传输的速度推向新高&#xff0c;大幅缩短了系统启动时间和应用程序加载时间&#xff0c;这对追求即时反应的ADAS系统…

【从零开始学习Java重要知识 | 第三篇】暴打ReentrantLock底层源码

目录 前言&#xff1a; 前置知识&#xff1a; 什么是公平锁与非公平锁&#xff1f; 尝试自己构造一把锁&#xff1a; ReentrantLock源码&#xff1a; 加锁&#xff1a; 解锁&#xff1a; 总结&#xff1a; 前言&#xff1a; 在并发编程中&#xff0c;线程安全是一个重…

【轮式平衡机器人】——软硬件配置/准备

本系列以轮式平衡移动机器人为例&#xff0c;将使用基于模型设计&#xff08;MBD&#xff09;方法进行介绍&#xff0c;涉及基础硬件、软件、控制算法等多方面内容&#xff0c;结合MATLAB/Simulink的强大仿真能力和代码生成能力辅助设计&#xff01;在此过程中可以系统了解开发…

SpringBoot+dynamic-datasource实现多数据源(msyql、sqlserver、postgresql)手动切换

场景 SpringBootMybatisPlusdynamic-datasources实现连接Postgresql和mysql多数据源&#xff1a; SpringBootMybatisPlusdynamic-datasources实现连接Postgresql和mysql多数据源-CSDN博客 上面实现通过注解和配置文件的方式去进行多数据源操作。 如果业务需求&#xff0c;比…

Tensorflow2.0笔记 - 不使用layer方式,简单的MNIST训练

本笔记不使用layer相关API&#xff0c;搭建一个三层的神经网络来训练MNIST数据集。 前向传播和梯度更新都使用最基础的tensorflow API来做。 import tensorflow as tf from tensorflow import keras from tensorflow.keras import datasets import numpy as npdef load_mnist(…

arthas(阿尔萨斯)日常java代码调优使用命令

官方项目文档&#xff1a;https://gitee.com/arthas/arthas &#xff08;最权威的教学还是得官网&#xff0c;这里仅作简单记录&#xff09; 1&#xff1a;启动 java -jar arthas-boot.jar 2&#xff1a;查看cpu占用排名前三 thread -3 3&#xff1a;查看指定id thread 203 4:查…

ui 开发 剪辑等工具集成网站

这里给大家推荐一个工具集成网站,总体来说还是挺不错的 菜鸟工具 - 不止于工具

mysql中DATE_FORMAT() 函数详解

mysql中DATE_FORMAT() 函数详解 一. 说明 在 MySQL 中&#xff0c;DATE_FORMAT() 函数用于将日期/时间类型的值按照指定的格式进行格式化输出。它的一般语法如下&#xff1a; DATE_FORMAT(date, format)其中&#xff0c;date 参数是要被格式化的日期/时间值&#xff0c;form…

C++03:条件与分支语句

2024年1月14日 内容来自The Cherno&#xff1a;C系列 2024年1月17日 更新内容整理自&#xff1a; 南京大学 陈佳俊 郑涛 《程序设计教程 用C语言编程》 --------------------------------------------------------------------------------------------------------------…

Java和SpringBoot学习路线图

看了一下油管博主Amigoscode的相关视频&#xff0c;提到了Java和SpringBoot的学习路线&#xff0c;相关视频地址为&#xff1a; How To Master Java - Java for Beginners RoadmapSpring Boot Roadmap - How To Master Spring Boot 如下图所示&#xff1a; 当然关于Java和Spr…

【声光语音告警】小机房-动环系统与服务器监控二合一告警方案

目前场景及存在的问题 目前有很多小规模机房&#xff0c;服务器数量不多&#xff0c;机房面积也较小&#xff0c;例如医院、车站、博物馆、学校、工厂等环境。机房虽小&#xff0c;但仍然需要进行服务器性能监控以及机房动力环境监控&#xff0c;例如漏水、温湿度、烟感、电压…

ChatGPT企业版跟个人版有什么区别?

ChatGPT企业版&#xff08;ChatGPT Enterprise&#xff09;除了有和个人版GPT一样的功能外&#xff0c;企业版还可提供企业级的安全和隐私、以及数据分析功能。 订阅实用可以看下这篇文章&#xff1a; ChatGPT企业版的区别是&#xff0c;企业版允许客户输入公司的数据&#xf…

6.4.2转换文件

6.4.2转换文件 利用Swf2VideoConverter2可以很方便地将Flash动画(*.swf)转换为其它的视频格式。 1&#xff0e;单击“添加”按钮&#xff0c;在弹出的下拉菜单中选择“添加文件”&#xff0c;在弹出的“Open Swf Files(打开Swf文件)”窗口中选择swf文件(如&#xff1a;那些花…

拉索回归(Lasso Regression)的原理是什么?

拉索回归&#xff08;Lasso Regression&#xff09;&#xff0c;全称Least Absolute Shrinkage and Selection Operator回归&#xff0c;是一种线性回归的改进方法&#xff0c;主要用于数据分析和特征选择。其核心原理是在传统的线性回归损失函数中加入了一个L1正则化项&#x…