首页 > 其他分享 >Element Plus 实现Icon图标的自动导入

Element Plus 实现Icon图标的自动导入

时间:2023-07-06 21:24:46浏览次数:43  
标签:const require Element unplugin 导入 Plus 组件 图标 Icon

Element Plus 官方文档对于Icon图标的自动导入,言之甚少。故博主来写篇文章总结一下,如何正确使用 unplugin-iconsunplugin-auto-import 从 iconify 中自动导入图标。

1. 安装依赖

npm i -D unplugin-icons unplugin-auto-import

PS: 如果你之前配置ElementPlus组件为“按需导入”,那就只用下unplugin-icons

2. 修改配置文件

这里以vue.config.js为例(这里配置包含组件按需导入以及图标自动导入):

const { defineConfig } = require('@vue/cli-service');

// 按需引入ElementPlus组件
const AutoImport = require('unplugin-auto-import/webpack');
const Components = require('unplugin-vue-components/webpack');
const { ElementPlusResolver } = require('unplugin-vue-components/resolvers');

// 自动导入Icon图标
const IconsResolver = require('unplugin-icons/resolver');
const Icons = require('unplugin-icons/webpack');

module.exports = defineConfig({
  // ......
  configureWebpack: {
    plugins: [
      AutoImport({
        resolvers: [
          // 这个是组件自动导入
          ElementPlusResolver(),
          // 自动导入图标组件
          IconsResolver()
        ]
      }),
      Components({
        resolvers: [
          // 自动注册图标组件
          IconsResolver({
            // 修改Icon组件前缀,不设置则默认为i,禁用则设置为false
            prefix: 'icon',
            // 指定collection,即指定为elementplus图标集ep
            enabledCollections: ['ep']
          }),
          // 这个是组件自动导入
          ElementPlusResolver()
        ]
      }),
      // Icons图标自动下载
      Icons({
        autoInstall: true
      })
    ]
  },
});

3. 图标的使用

<template>
  <!-- 在文档中复制icon图标后,这样的写法是不生效的 -->
  <el-icon>
    <Aim />
  </el-icon>
  <!-- 正确写法 -->
  <el-icon>
    <icon-ep-aim />
  </el-icon>
  <!-- 或 -->
  <icon-ep-aim />
</template>

解释:

使用组件解析器IconsResolver时,必须遵循名称转换才能正确推断图标,格式如下:

{prefix}-{collection}-{icon}
  • prefix是之前配置中设定的

    默认情况下,前缀设置为i,而您可以通过配置进行自定义

    IconsResolver({
      prefix: 'icon', 
      // prefix: 'icon', // 支持非前缀模式
    })
    
  • collectionIconify的图标集ID

  • icon即为该图标集中某个图标的name

标签:const,require,Element,unplugin,导入,Plus,组件,图标,Icon
From: https://www.cnblogs.com/fuct/p/17533365.html

相关文章

  • elementplus el-table 多级表头固定列的问题
    问题:最近有个需求,就是对复杂结构的el-table多级表头表格进行固定列(固定左侧),然后百度了N中方案都没有解决,全都是elementui多级表头固定列(elementui还是有解决方案的,自行百度,我这里说的是elementplus),开始我写了各种demo,但是始终无效,我看了下我的elementplus版本为2.2.0 然......
  • vue+element ui 表格选中特定行导出为excel
    1:使用场景:当选中表格中某几条数据(图中演示的为两行选中一行)进行导出为excel(如图二)2:安装依赖:npminstall--savexlsxfile-savernpminstall-Dscript-loader3:引入依赖文件:在src文件夹中创建名为excel的文件夹(注意大小写)将Blob.js、export2Excel.js两个js文件复制到exce......
  • Element-plus按需导入后,组件的正确使用和使用组件时TS报错找不到名称“xxxx”
    1.按需导入后使用组件Element-plus组件库的示例代码中,都import导入了组件,如:<template><el-buttontype="primary"@click="openFullScreen2">Asaservice</el-button></template><scriptlang="ts"setup>import{ElLoad......
  • element-ui的el-dialog主体滚动的小技巧
    一.场景element-ui的el-dialog的主体内容变多的时候,应该需要滚动条,所以解决方式:局部/全局设置样式;el-dialog源码改造。注意:看完了解思路,掌握max-height和overflow:auto的联合使用,el-scroll的使用即可二.方案一仅针对el-dialog__body的部分做处理,max-height:可以让内容......
  • Element-plus按需导入报错:Error: Cannot find module 'node:module'
    1.问题vue3项目使用ElementPlus组件库,配置按需导入:首先安装unplugin-vue-components和unplugin-auto-import这两款插件npminstall-Dunplugin-vue-componentsunplugin-auto-import然后按照文档在配置文件中进行相关配置;因为更改了配置文件,所以得重新启动项目--......
  • elementui 时间选择器默认时间格式
    <el-date-pickerv-model="searchForm.date"@change="getDate"type="daterange"range-separator="至"......
  • Element 自定义指令 下拉分页,获取无限数据
    template代码<el-form-item><el-selectv-model="form.batchId"v-loadmore="loadmoreBatchList"placeholder="请输入批次名称"filterableclearable><el-optionv-for="(item,......
  • Mybatis-Plus中update()和updateById()将字段更新为null
    目录简介问题描述原因概述源码分析所有策略设置为null的方案方案1:使用UpdateWrapper更新方案2:设置全局的field-strategy(不推荐)方案3:设置某个字段的field-strategy参考文章简介说明本文介绍Mybatis-Plus无法将字段更新为null的原因及解决方法。问题描述用Mybatis-......
  • Element-常用组件-表格-表单-对话框-分页工具条
     <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><!--格式--><style>.el-table.warning-row{background:oldlace;......
  • Element select表单必填验证
    特别注意:如第一段代码这里的区别是prop和v-model绑定的值不一样,这样的话是不行的,他们两个的值必须一样!!!!!而且还有一种情况,就是roleStatus必须要放在form里面,而且还必须是一个数组!!!!错误写法prop和v-model不一致<el-formlabel-width="300px":rules="rules":model="changeSourceDa......