Element-Plus 图标自动导入

🚀 作者主页: 有来技术

🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot

🌺 仓库主页: Gitee 💫 Github 💫 GitCode

💖 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请纠正!

目录

引言

Element-Plus 官方提供了四种 安装图标方式方式,本文将详细介绍如何通过自动导入方式。从 Iconify 中自动导入任何图标集。

本篇参考官方 自动导入模板

安装 Element-Plus

bash 复制代码
npm install element-plus

安装自动导入依赖

Element-Plus 自动导入(推荐)

bash 复制代码
npm install -D unplugin-auto-import unplugin-vue-components 

安装自动导入图标依赖

Element-Plus 图标自动导入

bash 复制代码
npm i -D unplugin-icons

自动导入配置

.eslintrc.cjs

自动导入函数 eslint 规则引入

json 复制代码
"extends": [
    "./.eslintrc-auto-import.json"
]

tsconfig.json

自动导入TS类型声明文件引入

json 复制代码
{
  "include": ["src/**/*.d.ts"]
}

vite.config.ts

typescript 复制代码
import path from 'path'
import { defineConfig } from 'vite'
import Vue from '@vitejs/plugin-vue'
import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

const pathSrc = path.resolve(__dirname, 'src')

export default defineConfig({
  resolve: {
    alias: {
      '@': pathSrc,
    },
  },
  plugins: [
    Vue({
      reactivityTransform: true,
    }),
    AutoImport({
      // Auto import functions from Vue, e.g. ref, reactive, toRef...
      // 自动导入 Vue 相关函数,如:ref, reactive, toRef 等
      imports: ['vue', '@vueuse/core'],
      dirs: [path.resolve(pathSrc, 'composables')],

      // Auto import functions from Element Plus, e.g. ElMessage, ElMessageBox... (with style)
      // 自动导入 Element Plus 相关函数,如:ElMessage, ElMessageBox... (带样式)
      resolvers: [
        ElementPlusResolver(),

        // Auto import icon components
        // 自动导入图标组件
        IconsResolver({}),
      ],
      vueTemplate: true,
      dts: path.resolve(pathSrc, 'typings', 'auto-imports.d.ts'),
    }),

    Components({
      resolvers: [
        // Auto register icon components
        // 自动注册图标组件
        IconsResolver({
          enabledCollections: ['ep'],
        }),
        // Auto register Element Plus components
        // 自动导入 Element Plus 组件
        ElementPlusResolver(),
      ],

      dts: path.resolve(pathSrc, 'typings', 'components.d.ts'),
    }),

    Icons({
      autoInstall: true,
    }),
  ],
})

自动导入图标使用

默认名称格式: i-ep-图标名 ,图标名在Element-Plus 官方-图标集合 查询

html 复制代码
	<div class="avatar">
	  <img :src="userStore.user.avatar + '?imageView2/1/w/80/h/80'" />
	  <!-- i-ep-图标名(CaretBottom ) -->
	  <i-ep-CaretBottom />
	</div>

效果如下:

自动导入图标样式

如何修改通过自动导入图标的大小和颜色样式?

html 复制代码
 <el-icon :size="12" color="#409eff">
   <i-ep-CaretBottom />
 </el-icon>

开源项目

  • 微服务商城项目
Github Gitee
开源组织 有来开源组织 有来开源组织
后端 youlai-mall 📖 youlai-mall 📖
前端 mall-admin🌎 mall-admin 🌎
移动端 mall-app 🌎 mall-app 🌎
  • 前后端分离项目
Github Gitee
开源组织 有来开源组织 有来开源组织
后端 youlai-boot 📖 youlai-boot 📖
前端 vue3-element-admin 🌎 vue3-element-admin 🌎
相关推荐
Hexene...4 小时前
【前端Vue】el-dialog关闭后黑色遮罩依然存在如何解决?
前端·javascript·vue.js·elementui·前端框架
小胖墩有点瘦4 小时前
【基于协同过滤的校园二手交易平台】
java·vue·毕业设计·springboot·计算机毕业设计·协同过滤·校园二手交易平台
小圣贤君6 小时前
小说创作中的时间轴体验设计:事序图交互与用户体验优化
electron·vue·甘特图·时序图·写作软件
知识分享小能手11 小时前
React学习教程,从入门到精通,React 构造函数(Constructor)完整语法知识点与案例详解(16)
前端·javascript·学习·react.js·架构·前端框架·vue
@AfeiyuO21 小时前
分类别柱状图(Vue3)
typescript·vue·echarts
大虾写代码1 天前
vue3+TS项目配置Eslint+prettier+husky语法校验
前端·vue·eslint
机构师1 天前
<uniapp><指针组件>基于uniapp,编写一个自定义箭头指针组件
javascript·uni-app·vue·html
@AfeiyuO1 天前
vue3 实现将页面生成 pdf 导出(html2Canvas + jspdf)
前端·pdf·vue
fury_1232 天前
vue3:触发自动el-input输入框焦点
javascript·vue.js·elementui
小菜全2 天前
ElementUI 组件概览
前端·vue.js·elementui