Element-plus的icon图标不显示解决方案

        Vue升级到Vue3,Element为了适应vue3,从Element-ui升级到了Element-plus,这个升级改动了不小。icon就算其中一个,plus中将icon组件化了,要注册才能使用,不像ui那版一样使用那么方便了,这到底是升级了还是退步了呢,咱也不知道。

 步骤

1.安装element-plus

         这篇文章就记录一下vue3环境下element-plus怎么使用icon图标,首先你要安装了element-plus。

# 选择一个你喜欢的包管理器

# NPM
$ npm install element-plus --save

# Yarn
$ yarn add element-plus

# pnpm
$ pnpm install element-plus

        你不喜欢他整套的,就想用它icon图标那也没问题单独安装就行了 

# 选择一个你喜欢的包管理器

# NPM
$ npm install @element-plus/icons-vue
# Yarn
$ yarn add @element-plus/icons-vue
# pnpm
$ pnpm install @element-plus/icons-vue

 2.引用icon图标

         然后就是引用icon图标,<el-icon><House /></el-icon> 里面的House就是图标的名字,el-icon是标签。

<el-menu-item index="/">
            <el-icon>
              <House />
            </el-icon>
            <span>首页</span>
 </el-menu-item>

 3.注册组件

        3.1局部注册

        做完上面那2步图标还是不会显示的,因为你没有注册,vue不知道 <House />是个什么东西,现在演示的是局部注册,适合只有几个页面就用几个小图标的。数量比较少。

选项式api的写法(vue2)

这里的vue2是指这语法是像以前的vue2那样写,vue3中能写vue2的那种api的

<script>
   import { House } from '@element-plus/icons-vue'

    export default {
        components: {
           House
        },
    }
</script>
组合式aip的写法(vue3)

        是不是组合式的更简便一点?因为他使用了setup语法糖,会自动帮你return。

<script setup>
import { House } from '@element-plus/icons-vue'

</script> 

3.2全局注册

        介绍完局部注册了,现在介绍全局注册,这种适合你好几个页面用到他的icon图标而且数量比较多,那你总不能用到哪个就去注册哪个吧,那多麻烦呀!所以我们用全局注册,这样再也不用去import xxx 了。

        想必你用了element你肯定再main.js那importelement-plus了吧,结构应该和我差不多吧。

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import '@/assets/global.css'
createApp(App).use(router).use(ElementPlus).mount('#app')

         那现在就只需要几步就能全局注册了!改造成下面这样 下面那个for循环就起到了遍历ElementPlusIconsVue这个对象里面所有的键值,然后全部注册。

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import '@/assets/global.css'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'

const app = createApp(App);

for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    app.component(key, component);
}

app.use(router).use(ElementPlus);
app.mount('#app');

4.效果展示

### Element Plus 图标显示解决方案 对于在 Vue 3 环境下遇到 `Element Plus` 的图标组件无法正常显示的情况,可以按照如下方法排查并解决问题。 #### 安装依赖库 确认已经通过合适的包管理工具安装了 `element-plus` 库。如果尚未完成这一步骤,则需执行相应的命令来引入该库: ```bash $ npm install element-plus --save # 或者使用Yarn $ yarn add element-plus # 或者使用pnpm $ pnpm install element-plus ``` 上述操作确保项目能够访问到最新的 `element-plus` 功能[^1]。 #### 导入样式文件 有时图标的缺失可能是由于未正确加载 CSS 文件所引起的。为了使图标能被浏览器渲染出来,应该显式导入 `element-plus/lib/theme-chalk/index.css` 到项目的入口文件中,比如 main.js 或 main.ts: ```javascript // 引入整个Element Plus的主题样式 import 'element-plus/lib/theme-chalk/index.css'; ``` 此步骤有助于应用默认主题设置给所有的 UI 组件,从而让它们看起来一致且美观。 #### 使用 Icon 组件的方式 当尝试利用 `<el-icon>` 标签展示特定图形时,请注意官方文档里提到的同版本间可能存在差异。某些情况下可能需要额外指定子标签名称才能成功呈现想要的效果。例如,在最新版中可以直接写成这样: ```html <template> <div> <!-- 正确方式 --> <el-icon><Edit /></el-icon> Edit Profile </div> </template> <script setup lang="ts"> import { Edit } from '@element-plus/icons-vue' </script> ``` 这里展示了如何从 `@element-plus/icons-vue` 中单独取出所需的 SVG 符号作为子元素传递进去,而是简单地把名字当作属性传过去。 #### 更新至最新稳定版 考虑到软件迭代过程中修复了少 bug 和兼容性问题,建议定期检查是否有新的发行版本可用,并适时升级以获得更好的体验和支持。可以通过运行以下命令来进行更新: ```bash $ npm update element-plus # 对于其他包管理器也存在类似的指令形式 ``` 保持使用的框架处于较新状态往往可以帮助避开一些已知的技术障碍。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值