Element Plus 图标使用方式整理

news2025/4/19 6:42:02

Element Plus 图标使用方式整理

以下是 Element Plus 图标的所有使用方式,包含完整代码示例和总结表格:


1. 按需引入图标组件
  • 适用场景:仅需少量图标时,按需导入减少打包体积

  • 示例代码

    <template>
      <div>
        <!-- 直接使用导入的图标组件 -->
        <Edit class="icon" />
        <Delete @click="handleClick" />
      </div>
    </template>
    
    <script setup>
    import { Edit, Delete } from '@element-plus/icons-vue';
    
    const handleClick = () => {
      console.log('图标被点击');
    };
    </script>
    
    <style>
    .icon {
      font-size: 24px;
      cursor: pointer;
    }
    </style>
    
  • 注释说明

    • 通过 @element-plus/icons-vue 按需导入图标组件
    • <script setup> 中导入并直接在模板中使用
    • 支持绑定点击事件等原生属性

2. 全局注册所有图标
  • 适用场景:项目需频繁使用大量图标时
  • 示例代码
    // main.js
    import { createApp } from 'vue';
    import App from './App.vue';
    import * as ElementPlusIconsVue from '@element-plus/icons-vue';
    import ElementPlus from 'element-plus';
    
    const app = createApp(App);
    app.use(ElementPlus);
    
    // 全局注册所有图标
    for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
      app.component(key, component);
    }
    
    app.mount('#app');
    
  <!-- 组件中直接使用 -->
  <template>
    <Search class="global-icon" />
    <InfoFilled />
  </template>
  • 注意事项
    • 会引入所有图标,可能增加打包体积
    • 需在入口文件全局注册

3. 动态绑定图标(通过变量)
  • 适用场景:需要动态切换图标时
  • 示例代码
    <template>
      <component :is="currentIcon" class="dynamic-icon" />
      <button @click="toggleIcon">切换图标</button>
    </template>
    
    <script setup>
    import { ref } from 'vue';
    import { Edit, Check } from '@element-plus/icons-vue';
    
    const currentIcon = ref(Edit);
    
    const toggleIcon = () => {
      currentIcon.value = currentIcon.value === Edit ? Check : Edit;
    };
    </script>
    

4. 自定义图标
  • 适用场景:需使用项目专属图标时
  • 示例代码
    <!-- 自定义图标组件 CustomIcon.vue -->
    <template>
      <svg class="custom-icon" viewBox="0 0 1024 1024">
        <!-- 自定义路径 -->
        <path d="M512 1024c-282.2 0-512-229.8-512-512s229.8-512 512-512 512 229.8 512 512-229.8 512-512 512z"/>
      </svg>
    </template>
    
    <!-- 使用自定义图标 -->
    <template>
      <CustomIcon class="custom-style" />
    </template>
    
    <script setup>
    import CustomIcon from './CustomIcon.vue';
    </script>
    

5. 组合图标(Element Plus 2.3+)
  • 适用场景:需要组合多个图标时
  • 示例代码
    <template>
      <el-icon class="combined-icon">
        <Edit />
        <Check />
      </el-icon>
    </template>
    
    <style>
    .combined-icon .el-icon__inner {
      margin-right: 8px;
    }
    </style>
    

使用方式总结表格

方式适用场景代码示例注意事项
按需引入少量图标需求import { Edit } from '@element-plus/icons-vue';需逐个导入,适合小项目
全局注册大量图标需求入口文件循环注册所有图标组件可能增加打包体积
动态绑定需要动态切换图标<component :is="currentIcon" />需通过变量控制图标类型
自定义图标需要专属图标自定义 SVG 组件并导入需自行设计图标路径
组合图标需要多个图标组合<el-icon><Edit /><Check /></el-icon>需手动设置间距/样式

关键点补充

  1. 图标样式控制:通过 CSS 直接修改 font-sizecolorcursor 等属性
  2. 图标列表:所有图标名称可通过 @element-plus/icons-vue 查看
  3. 版本兼容:Element Plus 2.x+ 推荐使用 SVG 图标,旧版字体图标已弃用

如果需要进一步优化或扩展某个用法,可以随时提出!

扩展

在按钮上加图标和直接使用图标

在这里插入图片描述
在这里插入图片描述

完整代码例子

<script setup lang="ts">
import { ref } from 'vue'

defineProps<{ msg: string }>()

const count = ref(0)
</script>

<template>
  <h1>{{ msg }}</h1>
  <div>1234567890</div>
  <el-button icon="Edit">Default</el-button>
  <el-button type="primary">Primary</el-button>
  <el-button type="success">Success</el-button>
  <el-button type="info">Info</el-button>
  <el-button type="warning">Warning</el-button>
  <el-button icon="Close" type="danger">Danger</el-button>
  <el-icon>
    <Edit />
  </el-icon>
  <div class="card">
    <button type="button" @click="count++">count is {{ count }}</button>
    <p>
      Edit
      <code>components/HelloWorld.vue</code> to test HMR
    </p>
  </div>

  <p>
    Check out
    <a href="https://vuejs.org/guide/quick-start.html#local" target="_blank">create-vue</a>, the official Vue + Vite
    starter
  </p>
  <p>
    Learn more about IDE Support for Vue in the
    <a href="https://vuejs.org/guide/scaling-up/tooling.html#ide-support" target="_blank">Vue Docs Scaling up Guide</a>.
  </p>
  <p class="read-the-docs">Click on the Vite and Vue logos to learn more</p>
</template>

<style scoped>
.read-the-docs {
  color: #888;
}
</style>

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

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

相关文章

链路聚合+vrrp

1.链路聚合 作用注意事项将多个物理接口&#xff08;线路&#xff09;逻辑上绑定在一起形成一条逻辑链路&#xff0c;起到叠加带宽的作用1.聚合接口必须转发速率一致。2.聚合设备两端必须一致 配置命令 方法一 [Huawei]interface Eth-Trunk 0----先创建聚合接口&#xff0c;…

Dynamics 365 Business Central Register Customer Payment 客户付款登记

#Dynamics 365 BC ERP# #D365 ERP# #Navision 前言 在实施过程&#xff0c;经常给客户介绍的 给客户付款一般用Payment Journal. 在客户熟悉系统运行后&#xff0c;往往会推荐客户使用Register Customer Payment.用这个function 工作会快很多&#xff0c;但出错的机会也比较大…

Odoo免费开源ERP:企业销售过程中出现的问题

在企业未上线Odoo免费开源ERP时&#xff0c;企业销售过程中会存在失误。比如&#xff0c;许多销售订单都有如下问题&#xff1a;不当的定价、向客户过多地询问、处理订单延误、错过发货日期等。这些问题源于企业三个未集成的信息系统&#xff1a;销售管理系统、库存系统和财务系…

网络稳定性--LCA+最大生成树+bfs1/dfs1找最小边

1.最大生成树去除重边&#xff0c;只要最大的边成树 2.LCA查最近公共祖先&#xff0c;然后询问的lca(x,y)ff,分别从x,y向上找最小边 3.bfs1/dfs1就是2.中向上找的具体实现 #include<bits/stdc.h> using namespace std; #define N 100011 typedef long long ll; typede…

混合并行技术在医疗AI领域的应用分析(代码版)

混合并行技术(专家并行/张量并行/数据并行)通过多维度的计算资源分配策略,显著提升了医疗AI大模型的训练效率与推理性能。以下结合技术原理与医疗场景实践,从策略分解、技术对比、编排优化及典型案例等维度展开分析: 一、混合并行技术:突破单卡算力限制 1. 并行策略三维分…

【C++面向对象】封装(上):探寻构造函数的幽微之境

每文一诗 &#x1f4aa;&#x1f3fc; 我本将心向明月&#xff0c;奈何明月照沟渠 —— 元/高明《琵琶记》 译文&#xff1a;我本是以真诚的心来对待你&#xff0c;就像明月一样纯洁无瑕&#xff1b;然而&#xff0c;你却像沟渠里的污水一样&#xff0c;对这份心意无动于衷&a…

每日算法-250409

这是我今天的算法学习记录。 2187. 完成旅途的最少时间 题目描述 思路 二分查找 解题过程 为什么可以使用二分查找&#xff1f; 问题的关键在于寻找一个最小的时间 t&#xff0c;使得在时间 t 内所有公交车完成的总旅途次数 sum 大于等于 totalTrips。 我们可以观察到时间的单…

如何实现文本回复Ai ChatGPT DeepSeek 式文字渐显效果?前端技术详解(附完整代码)

个人开发的塔罗牌占卜小程序&#xff1a;【问问塔罗牌】 快来瞧瞧吧&#xff01; 一、核心实现原理 我们通过三步实现这个效果&#xff1a; 逐字渲染&#xff1a;通过 JavaScript 定时添加字符 透明度动画&#xff1a;CSS 实现淡入效果 光标动画&#xff1a;伪元素 CSS 动画…

linux下截图工具的选择

方案一 gnome插件Screenshot Tool&#xff08;截屏&#xff09; ksnip&#xff08;图片标注&#xff09; gnome setting设置图片的默认打开方式为ksnip就可以快捷的将Screenshot Tool截屏的图片打开进行标记了。 但是最近我发现Screenshot Tool的延迟截图功能是有问题的&…

rkmpp 解码 精简mpi_dec_test.c例程

rkmpp 解码流程&#xff08;除 MPP_VIDEO_CodingMJPEG 之外&#xff09; 源码 输入h264码流 输出nv12文件 /** Copyright 2015 Rockchip Electronics Co. LTD** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file exce…

怎么构造思维链数据?思维链提示工程的五大原则

我来为您翻译这篇关于思维链提示工程的文章&#xff0c;采用通俗易懂的中文表达&#xff1a; 思维链(CoT)提示工程是生成式AI(GenAI)中一种强大的方法&#xff0c;它能让模型通过逐步推理来解决复杂任务。通过构建引导模型思考过程的提示&#xff0c;思维链能提高输出的准确性…

网络安全之-信息收集

域名收集 域名注册信息 站长之家 https://whois.chinaz.com/ whois 查询的相关网站有:中国万网域名WHOIS信息查询地址: https://whois.aliyun.com/西部数码域名WHOIS信息查询地址: https://whois.west.cn/新网域名WHOIS信息查询地址: http://whois.xinnet.com/domain/whois/in…

JdbcTemplate基本使用

JdbcTemplate概述 它是spring框架中提供的一个对象&#xff0c;是对原始繁琐的JdbcAPI对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和MbernateTemplate&#xff0c;操作nosql数据库的RedisTemplate&#xff0c;操作消息队列的…

openEuler24.03 LTS下安装Spark

目录 安装模式介绍 下载Spark 安装Local模式 前提条件 解压安装包 简单使用 安装Standalone模式 前提条件 集群规划 解压安装包 配置Spark 配置Spark-env.sh 配置workers 分发到其他机器 启动集群 简单使用 关闭集群 安装YARN模式 前提条件 解压安装包 配…

使用 DeepSeek API 实现新闻文章地理位置检测与地图可视化

使用 DeepSeek API 实现新闻文章地理位置检测与地图可视化 | Implementing News Article Location Detection and Map Visualization with DeepSeek API 作者&#xff1a;zhutoutoutousan | Author: zhutoutoutousan 发布时间&#xff1a;2025-04-08 | Published: 2025-04-08 标…

如何精准控制大模型的推理深度

论文标题 ThinkEdit: Interpretable Weight Editing to Mitigate Overly Short Thinking in Reasoning Models 论文地址 https://arxiv.org/pdf/2503.22048 代码地址 https://github.com/Trustworthy-ML-Lab/ThinkEdit 作者背景 加州大学圣迭戈分校 动机 链式推理能显…

【力扣hot100题】(078)跳跃游戏Ⅱ

好难啊&#xff0c;我愿称之为跳崖游戏。 依旧用了两种方法&#xff0c;一种是我一开始想到的&#xff0c;一种是看答案学会的。 我自己用的方法是动态规划&#xff0c;维护一个数组记录到该位置的最少步长&#xff0c;每遍历到一个位置就嵌套循环遍历这个位置能到达的位置&a…

WES与WGS数据线粒体DNA数据分析及检测工具

1. 线粒体DNA的异质性 传统的全外显子组测序&#xff08;WES&#xff09;和全基因组测序&#xff08;WGS&#xff09;的二代测序&#xff08;SGS&#xff09; 数据分析流程&#xff0c;能够识别多种类型的基因改变。但大多数用于基因变异分析和注释的工具&#xff0c;在输出文…

word表格间隔设置

1.怎么解决word表格间隔达不到我们想要的要求 其实很简单, 我们直接在word表格里面, 全选表格中里面的内容。接着,我们选择自动调整---->根据内容自动调整表格,即可达到我们想要的要求

SpringBoot 接口限流Lua脚本接合Redis 服务熔断 自定义注解 接口保护

介绍 Spring Boot 接口限流是防止接口被频繁请求而导致服务器负载过重或服务崩溃的一种策略。通过限流&#xff0c;我们可以控制单位时间内允许的请求次数&#xff0c;确保系统的稳定性。限流可以帮助防止恶意请求、保护系统资源&#xff0c;并优化 API 的可用性&#xff0c;避…