Element-Plus 中图标的使用
element-plus 提供了一套常用的SVG图标集,可以根据项目实际情况进行使用。
安装图标库
npm install @element-plus/icons-vue
全局注册
一次导入,全局使用。只需要在 main.ts
中导入所有图标并进行全局注册,即可保证在整个项目中所有图标可用,无需再次导入。
// main.ts
import * as ElementPlusIcons from '@element-plus/icons-vue'
const app = createApp(App)
for (const [key, component] of Object.entries(ElementPlusIcons)) {
app.component(key, component)
}
在模版中使用
<el-icon>
<Setting />
</el-icon>
按需导入
手动导入
<script setup lang="ts">
import { Setting } from '@element-plus/icons-vue'
</script>
<template>
<el-icon color="red" :size="20">
<Setting />
</el-icon>
</template>
自动导入
安装依赖
npm i unplugin-icons unplugin-auto-import unplugin-vue-components -D
修改配置vite.config.ts
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
export default defineConfig({
plugins: [
vue(),
Icons({ autoInstall: true }),
AutoImport({
resolvers: [ElementPlusResolver(), IconsResolver()],
dts: fileURLToPath(new URL('./src/@types/auto-imports.d.ts', import.meta.url))
}),
Components({
resolvers: [ElementPlusResolver(), IconsResolver()],
dts: fileURLToPath(new URL('./src/@types/components.d.ts', import.meta.url)),
dirs: [], // src/components目录下的组件不自动导入
version: 3
})
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
}
})
通过 <i-ep-xxx />
来加载图标:
<el-icon>
<i-ep-setting />
</el-icon>