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

先说原理就是将 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 属性

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue3前端开发,感受一下组合式api和VUE2选项式的差异

vue3前端开发,感受一下组合式api和VUE2选项式的差异&#xff01;今天开始&#xff0c;正式开始&#xff0c;进入学习Vue3的内容。以后代码&#xff0c;案例分享&#xff0c;都会采用组合式api的模式为大家做展示。 今天是第一节&#xff0c;带大家感受一下&#xff0c;Vue3的组…

【LeetCode: 48. 旋转图像】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

HarmonyOS鸿蒙学习基础篇 - 什么是HarmonyOS

概述 HarmonyOS是华为开发的一款面向未来的全场景分布式智慧操作系统&#xff0c;将逐步覆盖18N全场景终端设备&#xff1b; 对消费者而言 HarmonyOS用一个‘统一的软件系统’ 从根本上解决消费者面对大量智能终端体验割裂的问题&#xff0c;为消费者带来同意便利安全的智慧化全…

Failed at the node sass@4.14.1 postinstall script.

首先&#xff0c;查看node和 npm版本 #用于列出已安装的 Node.js 版本。 nvm ls #切换node版本 nvm use 12.17.0 #换国内镜像源&#xff1a;&#xff08;单独设置sass的安装源。&#xff09; npm config set sass_binary_sitehttps://npm.taobao.org/mirrors/node-sass …

Hook入门与抓包

Hook入门与抓包 0x01 Frida基础介绍 Frida介绍 Frida 的 介 绍 是 “Frida 是 平 台 原 生 App 的“Greasemonkey”&#xff0c;专业一点来说就是一种动态插桩工具&#xff0c;可以插入一些代码到原生App的内存空间去动态地监视和修改其行为&#xff0c;这些原生平台可以是W…

vue基于Spring Boot的中医在线学习课程购买服务管理系统

SpinrgBoot的主要优点有&#xff1a; 1、为所有spring开发提供了一个更快、更广泛的入门体验&#xff1b; 2、零配置&#xff1b; 3、集成了大量常用的第三方库的配置&#xff1b; 4、提供准备好的特性。当今&#xff0c;nodejs领域的开发者机会都在使用SpinrgBoot,在开发领域逐…

ONLYOFFICE服务器无法连接,请联系管理员问题解决

1、现象 部署好了nextcloud和onlyoffice后&#xff0c;新建文本文档报错ONLYOFFICE服务器无法连接&#xff0c;请联系管理员。 用快捷键“F12”进入控制台&#xff0c;点开错误提示栏&#xff0c;找到有“api.js“文件&#xff0c;“https://ONLYOFFICED的地址/web-apps/apps/…

冻结LM微调Prompt

这一章我们介绍在下游任务微调中固定LM参数&#xff0c;只微调Prompt的相关模型。这类模型的优势很直观就是微调的参数量小&#xff0c;能大幅降低LLM的微调参数量&#xff0c;是轻量级的微调替代品。和前两章微调LM和全部冻结的prompt模板相比&#xff0c;微调Prompt范式最大的…

基于android的违章处理APP 前后端服务 -毕业设计

基于android的违章处理APP 该项目是基于android版本的违章处理APP&#xff0c;系统包含前端android服务和后端web服务&#xff0c;内容和技术都是目前比较流行的架构。 技术介绍 前端android端&#xff1a; jdk17 gradle8.0 android studio 采用2023版本 后端web端&#xff…

PyTorch 中的距离函数深度解析:掌握向量间的距离和相似度计算

目录 Pytorch中Distance functions详解 pairwise_distance 用途 用法 参数 数学理论公式 示例代码 cosine_similarity 用途 用法 参数 数学理论 示例代码 输出结果 pdist 用途 用法 参数 数学理论 示例代码 总结 Pytorch中Distance functions详解 pair…

到店商详架构变迁

一、项目背景 到店商详是平台为京东到店业务提供的专属商详页面&#xff0c;将传统电商购物路径打造成以LBS门店属性的本地生活服务交易链路。 二、架构变迁 1、 主站商详扩展点 **优点&#xff1a;**到店侧仅关注业务&#xff0c;无需过度关注服务部署、性能优化等。 **缺…

【EI会议征稿通知】2024年通信技术与软件工程国际学术会议 (CTSE 2024)

2024年通信技术与软件工程国际学术会议 (CTSE 2024) 2024 International Conference on Communication Technology and Software Engineering (CTSE 2024) 2024年通信技术与软件工程国际学术会议 (CTSE 2024)将于2024年03月15-17日在中国长沙举行。会议专注于通信技术与软件工…

【C++初阶】第二站:类与对象(上) -- 上部分

前言: C学习的第二站&#xff1a;类和对象(上)文章的上半部分,知识点:面向过程和面向对象初步认识、类的引入、类的定义、类的访问限定符及封装、类的作用域、类的实例化. 目录 面向过程和面向对象初步认识 类的引入 类的定义 类的访问限定符及封装 访问限定符 封装 类的…

Git提交 ssh: connect to host github.com port 22: Connection timed out解决方案

你们好&#xff0c;我是金金金。 场景 之前都是好好的&#xff0c;不知道今天为什么提交代码就这样了 排查 根据英文可以看出&#xff0c;ssh端口号被拒绝了&#xff0c;22号端口不行&#xff0c;那就换一个端口 造成error的原因 ssh端口被拒绝 解决 找到.ssh文件&#xff…

AI新势力|将创业当作修行的BookGPT

近期&#xff0c;科技慢半拍联合AIGC开放社区采访了AI创业产品BootGPT的创始人陆再谋。陆总分享了他的创业之旅&#xff0c;从贵州到北京&#xff0c;再回到贵州的整段创业经历&#xff0c;从最初的困难到逐渐取得的成果&#xff0c;打造出了BookGPT这款创业产品。 在本次访谈中…

RT-Thread Studio学习(十五)PWM测量

RT-Thread Studio学习&#xff08;十五&#xff09;PWM测量 一、简介二、新建RT-Thread项目并使用外部时钟三、启用PWM输入捕获功能四、测试 一、简介 本文将基于STM32F407VET芯片介绍如何在RT-Thread Studio开发环境下使用定时器的PWM输入模式进行脉宽和周期测量。硬件及开发…

轻量化/高效扩散模型文献综述

&#x1f380;个人主页&#xff1a; https://zhangxiaoshu.blog.csdn.net &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️&#xff0c;如有错误敬请指正! &#x1f495;未来很长&#xff0c;值得我们全力奔赴更美好的生活&…

算法刷题——拿出最少数目的魔法豆(力扣)

文章目录 题目描述我的解法思路结果分析 官方题解分析 查漏补缺更新日期参考来源 题目描述 传送门 拿出最少数目的魔法豆&#xff1a;给定一个正整数 数组beans &#xff0c;其中每个整数表示一个袋子里装的魔法豆的数目。请你从每个袋子中拿出 一些豆子&#xff08;也可以 拿…

TypeScript实现一个贪吃蛇小游戏

游戏效果 文件目录 准备1&#xff1a;新建index.html&#xff0c;编写游戏静态页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-…