element-plus图标不显示问题

本文参考解决ElementPlus使用图标不显示问题并修订。前提是已安装element-plus/icons,图标引用少用方案1,即页面引入图标作为js对象;大量使用图标用方案2,在main.js中全部引入并注册,使用时icon属性直接赋值。

本文参考了解决element-plus使用图标不显示问题,并做了一些修订删改。

前提:确定安装了element-plus/icons

npm install @element-plus/icons-vue

如果图标引用的比较少,那么采用方案1,如果大量的使用了图标,就采用方案2

方案1:
在引用图标的页面中将要使用的图标引入,作为js对象,代码如下:

<div class="flex">
    <el-button type="primary" :icon="Edit" />
    <el-button type="primary" :icon="Share" />
    <el-button type="primary" :icon="Delete" />
    <el-button type="primary" :icon="Search">Search</el-button>
    <el-button type="primary">
      Upload<el-icon class="el-icon--right"><Upload /></el-icon>
    </el-button>
</div>
<script>
    import { Edit,Share } from "@element-plus/icons-vue";
    export default {
         setup() {
             return {
                 Edit,
                 Share
             }
         }
    }
</script>

这就是elemunt-ui3官网一致示例中的使用方式

方案2:
方案2其实是针对方案一的一个优化,对于大量使用icon的项目来说相对比较友好
首先:在main.js中将icon全部引入并注册到页面中

import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import * as ElIconList from '@element-plus/icons-vue'

for (const name in ElIconList) {
  app.component(name, ElIconList[name])
}

前面两个import是导入ElementPlus和ElementPlus的CSS样式

然后是导入并一次性添加所有的ElementPlus ICON

然后就是使用了,在页面中直接使用即可

<el-button-group class="ml-4">
        <el-button type="primary" icon="Upload" />
        <el-button type="primary" icon="Edit" />
        <el-button type="primary" icon="Share" />
        <el-button type="primary" icon="Delete" />
</el-button-group>

可以看到,使用方案2最大的区别就是icon属性是直接赋值,而不是v-bind绑定(:icon)。

### 如何在 Vue3 中使用 Element-Plus 图标库 #### 安装依赖 为了使用 `@element-plus/icons-vue` 提供的图标组件,需先安装该包。可以通过 npm 或 yarn 进行安装: ```bash npm install @element-plus/icons-vue ``` 或者 ```bash yarn add @element-plus/icons-vue ``` 此操作会将所需图标库作为项目依赖项引入[^1]。 --- #### 全局注册方式 如果希望在整个应用中全局使用这些图标,则可以在项目的入口文件(通常是 `main.js` 或 `main.ts`)中导入并注册所有图标组件: ```javascript import { createApp } from 'vue'; import App from './App.vue'; import * as Icons from '@element-plus/icons-vue'; const app = createApp(App); // 遍历注册所有的图标组件 Object.keys(Icons).forEach((key) => { app.component(key, Icons[key]); }); app.mount('#app'); ``` 通过上述代码,可以实现对所有图标的全局访问[^2]。 --- #### 局部注册方式 对于仅在特定组件中使用的场景,推荐采用局部注册的方式以减少必要的开销。以下是具体的实现方法: ```html <template> <div> <!-- 使用 el-icon 组件包裹目标图标 --> <el-icon :size="size" :color="color"> <Search /> </el-icon> </div> </template> <script> // 导入所需的单个图标组件 import { Search } from '@element-plus/icons-vue'; export default { name: "MyIcons", components: { Search, }, }; </script> <style scoped> /* 自定义样式 */ </style> ``` 在此示例中,我们选择了 `Search` 图标来表示放大镜功能,并将其嵌套于 `<el-icon>` 内完成渲染[^3]。 --- #### 可用图标列表查询 如需了解完整的可用 SVG 图标集合,请参考 [@element-plus/icons-vue](https://github.com/element-plus/icons/tree/main/packages/vue) 的 GitHub 页面或其他官方资源链接中的 **Icon Collection** 列表。这有助于快速定位到适合需求的具体图标名称。 --- #### 常见问题排查 假如按照以上步骤配置完毕后仍无法正常显示指定图标,请确认以下几点: 1. 是否已成功安装 `@element-plus/icons-vue`; 2. 当前版本号是否匹配所查阅文档的要求; 3. 检查网络环境是否存在加载失败的情况。 --- ### 总结 综上所述,在 Vue3 应用程序里集成 Element-Plus 图标主要分为两步:一是正确安装相关依赖;二是依据实际需求决定采取全局还是局部的方式来声明和调用各个图标实例[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值