一起养成写作习惯!这是我参加「掘金日新打算 · 4 月更文挑战」的第1天,点击查看流动详情。

本文简介

点赞 + 关注 + 珍藏 = 学会了


Vue 生态里, Element UI 是排名前列的组件库。 在 Vue 公布到 3.0 时,Element 也公布了对应的组件库。也就是 Element Plus 。随之而来的用法也跟着变了。

比方本文要讲的 el-icon 的用法。


Element Plus 里,Icon 图标 的用法和以前不一样了。尽管官网文档也有阐明怎么用,但不是十分具体,可能会给老手带来一丢丢阻碍。

本文将花几分钟的工夫解说 el-icon 几种用法和注意事项。

留神:须要注意本文发表工夫与应用的 Element Plus 版本,随着工夫的推移可能会呈现应用上的差别。

vue: ^3.2.25

element-plus: ^2.1.7

@element-plus/icons-vue: ^1.1.4



初步理解

Icon 在 Element UI 和 Element Plus 用法上的差异

vue2 + Element UI 的用法

<i class="el-icon-edit"></i>


vue3 + Element Plus 的用法

<ElIcon :size="30" color="hotpink">  <edit /></ElIcon><!-- 也能够间接应用图标标签,无需父标签包裹 --><edit />


集体感觉,Element UI 的用法会更加简略。

下一篇文章我会解说如何在 Element Plus 的根底上二次封装出一个更好用的 Icon组件


Icon 在 Element Plus 中的应用逻辑

Element Plus 摈弃了字体图标的用法,间接应用了 svg 的形式。

能够说,图标这个货色被拎进去独自保护了。所以在应用前必须把 svg图标库 下载下来。

下载 svg图标库 的命令:

npm install @element-plus/icons-vue

你也能够应用 Yarnpnpm 的形式下载

# Yarnyarn add @element-plus/icons-vue# pnpmpnpm install @element-plus/icons-vue


应用的形式有2种,一种是间接应用 svg,另一种是配合 el-icon 标签一起应用。

接下来就别离讲讲这两种应用形式(全局和部分引入都会讲到)



只应用 svg

如果你只需应用 Element Plus 提供的 svg图标库 的话,是能够不装置 Element Plus 的。不过这种场景应该很少呈现。

装置命令:

npm install @element-plus/icons-vue


Element Plus 提供的 svg图标 品种能够到 图标汇合 里查看。


通过 svg组件 的形式应用图标,如需设置图标大小和色彩,都须要通过 css 来设置。


全局引入

全副引入的形式会将所有 svg组件 都注册到全局,用的时候比拟不便,但会就义一点性能。

main.js

import { createApp } from 'vue'import App from './App.vue'import * as Icons from '@element-plus/icons-vue' // 引入所有图标,并命名为 Iconsconst app = createApp(App)// 通过遍历的形式注册所有 svg组件,会就义一点点性能for (let i in Icons) {  app.component(i, Icons[i])}app.mount('#app')


如果你不想全副引入,只是想在全局注册某个 svg图标组件,能够用以下形式在 main.js 里注册(我以 Edit 图标为例)

/* 省略局部代码 */import { Edit } from '@element-plus/icons-vue' // 引入 Edit 图标const app = createApp(App)app.component(Edit.name, Edit) // 全局注册 Edit 图标app.mount('#app')


在页面中应用

<template>  <div>    <edit />  </div></template><style>svg {  width: 40px;  height: 40px;  color: red;}</style>


部分引入

部分引入的形式只需在应用的中央引入即可。

<template>  <div>    <edit />  </div></template><script setup>import { Edit } from '@element-plus/icons-vue' // 引入 Edit 这个 svg组件</script><style>svg {  width: 40px;  height: 40px;  color: red;}</style>



配合 el-icon 一起应用

Element Plus 还提供了 el-icon 组件用来包裹 svg图标组件 ,使得设置图标大小和色彩更加不便。

但须要在我的项目中装置 Element Plus ,装置命令如下:

# 抉择其中一种形式装置即可。# NPMnpm install element-plus --save# Yarnyarn add element-plus# pnpmpnpm install element-plus


装置完 Element Plus 后,能够在全局引入,也能够部分引入。


全局引入

main.js

import { createApp } from 'vue'import ElementPlus from 'element-plus'import 'element-plus/dist/index.css'import { Edit } from '@element-plus/icons-vue' // 引入 Edit 图标import App from './App.vue'const app = createApp(App)app.component(Edit.name, Edit) // 全局注册 Edit 图标app.use(ElementPlus).mount('#app')


在页面中应用

<el-icon :size="20" color="hotpink">  <edit /></el-icon>

此时,在 el-icon 上设置 sizecolor 就能管制 svg图标 的大小和色彩。

须要留神的是 size 属性必须传数字,不能传字符串进去!


部分引入

<template>  <div>    <el-icon :size="30" color="hotpink">      <edit />    </el-icon>  </div></template><script setup>import { ElIcon } from 'element-plus'import { Edit } from '@element-plus/icons-vue'import 'element-plus/es/components/icon/style/css'</script>

部分引入的话,咱们只须要引入 icon 对应的 css 即可。

如果你在 main.js 引入了 element-plus/dist/index.css 就不须要在页面再引入 element-plus/es/components/icon/style/css



举荐浏览

《Vite 搭建 Vue2 我的项目(Vue2 + vue-router + vuex)》

《Vue3 过10种组件通信形式》

《这18个网站能让你的页面背景炫酷起来》