位置: IT常识 - 正文

vue3 vue.config.js配置Element-plus组件和Icon图标实现按需自动引入

编辑:rootadmin
vue3 vue.config.js配置Element-plus组件和Icon图标实现按需自动引入

推荐整理分享vue3 vue.config.js配置Element-plus组件和Icon图标实现按需自动引入,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

打包时,报警告,提示包太大会影响性能

1.配置前包体积:

2.安装插件:npm i unplugin-auto-import unplugin-vue-components unplugin-icons -D3.vue.config.js中加入以下配置:const { defineConfig } = require('@vue/cli-service')const AutoImport = require('unplugin-auto-import/webpack')const Components = require('unplugin-vue-components/webpack')const { ElementPlusResolver } = require('unplugin-vue-components/resolvers')const Icons = require('unplugin-icons/webpack')const IconsResolver = require('unplugin-icons/resolver')module.exports = defineConfig({ ... configureWebpack: { plugins: [ //配置webpack自动按需引入element-plus, require('unplugin-element-plus/webpack')({ libs: [{ libraryName: 'element-plus', esModule: true, resolveStyle: (name) => { return `element-plus/theme-chalk/${name}.css` }, }, ] }), AutoImport({ resolvers: [ // 自动导入图标组件 IconsResolver({ prefix: 'Icon', }), ElementPlusResolver() ] }), Components({ resolvers: [ // 自动注册图标组件 IconsResolver({ enabledCollections: ['ep'], }), ElementPlusResolver() ] }), Icons({ autoInstall: true, }), ], },})4.使用

在页面直接使用,直接使用 SVG 图标,当做一般的 svg 使用 icon使用时需要用以下两种方式方式:

<el-icon> <i-ep-edit/> </el-icon><i-ep-edit/>5.在el-button中使用

如果用在el-button里面的icon属性上使用,用SVG方式无效,还是需要引入再使用(不知道有没有其他方式)

import { Delete, Edit } from '@element-plus/icons-vue'<el-button type="success" size="small" :icon="Edit" round @click="openAddUserForm('add')">新增用户</el-button>

注意:

使用:icon="Edit"则icon的大小和button里面字体大小一致size=small 但是如果使用<i-ep-search/>放在el-button里面,则会比放在button里大 <el-button type="primary" size="small" @click="searchResource"><i-ep-search/>查询</el-button>

6.按需引入后,ElMessageBox样式错乱vue3 vue.config.js配置Element-plus组件和Icon图标实现按需自动引入

解决方法一:在当前页面或者全局main.js里面引入import "element-plus/es/components/message-box/style/css";即可,但是违背了按需引入的初衷

解决方法二按需导入: 使用unplugin-element-plus对使用到的组件样式进行按需导入 

npm i unplugin-element-plus -D

然后再vue.config.js中配置以下即可:

plugins: [ //配置webpack自动按需引入element-plus, require('unplugin-element-plus/webpack')({ libs: [{ libraryName: 'element-plus', esModule: true, resolveStyle: (name) => { return `element-plus/theme-chalk/${name}.css` }, }, ] }),....]7.使用按需导入后,使用配置文件自动化生成表单中,配置得icon:'Edit'失效

全局引入时,直接使用icon: 'Edit',然后jsx中直接读取即可

buttons: [{ name: '生成案例', title: 'generateTestCase', type: 'primary', size: 'default', //可以是default,small,large icon: 'Edit', // 按钮是否为朴素类型 // plain: true, onClick: null }] const Button = (form, data) =>( !data.isHidden?<ElButton type={data.type} size={data.size} icon= {data.icon} plain={data.plain} onClick={data.onClick} > {data.name}</ElButton>:'' )

 但是按需引入后,这样做失效了。

解决:直接把icon: shallowRef(Edit)或者markRaw(Edit),然后引入组件即可

import { DocumentDelete, Edit, Download } from '@element-plus/icons-vue'import { shallowRef } from 'vue' buttons: [{ name: '生成案例', title: 'generateTestCase', type: 'primary', size: 'default', //可以是default,small,large icon: shallowRef(Edit), // 按钮是否为朴素类型 // plain: true, onClick: null }]

注意:使用组件时,必须使用shallowRef或者 markRaw对组件进行包装,否则会报警告

[Vue warn]: Vue received a Component which was made a reactive object. This can lead to unnecessary performance overhead, and should be avoided by marking the component with `markRaw` or using `shallowRef` instead of `ref`.Component that was made reactive: {name: "DocumentDelete", __file: "document-delete.vue", render: ƒ}

报错原因:vue接收到一个组件,该组件是一个响应式对象。这可能会导致不必要的性能开销,应该通过使用’markRaw‘或使用’shallowRef‘而不是’ref'来避免。 写成:shallowRef(Edit)或者markRaw(Edit)即可 

8.其他打包警告警告:chunk 574 [mini-css-extract-plugin]Conflicting order. Following module has been added:

 

解决:由于各个css和js文件引入顺序问题导致

module.exports = defineConfig({...... css: { extract: { ignoreOrder: true } }})9.配置后包体积大小

本文链接地址:https://www.jiuchutong.com/zhishi/283176.html 转载请保留说明!

上一篇:win10待机怎么唤醒(wind10待机唤醒)

下一篇:新手小白如何租用GPU云服务器跑深度学习(怎么租一个月)

  • oppok7有nfc功能吗(oppok 7手机有nfc功能吗)

    oppok7有nfc功能吗(oppok 7手机有nfc功能吗)

  • 快手减少类似直播解除(快手减少类似直播怎么恢复步骤)

    快手减少类似直播解除(快手减少类似直播怎么恢复步骤)

  • 抖音评论怎么变夜间模式(抖音评论怎么变绿色)

    抖音评论怎么变夜间模式(抖音评论怎么变绿色)

  • 腾讯会议退出的时候主持人会看到吗(腾讯会议退出的方式)

    腾讯会议退出的时候主持人会看到吗(腾讯会议退出的方式)

  • oppor17突然黑屏打不开是怎么回事(oppor17突然黑屏怎么办)

    oppor17突然黑屏打不开是怎么回事(oppor17突然黑屏怎么办)

  • 佳能打印机5200错误代码是什么意思(佳能打印机5200错误代码)

    佳能打印机5200错误代码是什么意思(佳能打印机5200错误代码)

  • 硬盘电源线四根线作用(硬盘电源线四根线怎么接)

    硬盘电源线四根线作用(硬盘电源线四根线怎么接)

  • 华为nova2plus如何恢复出厂设置(华为nova2plus如何刷机)

    华为nova2plus如何恢复出厂设置(华为nova2plus如何刷机)

  • hd6670相当于gtx哪个卡

    hd6670相当于gtx哪个卡

  • win10重装系统一直反复重启(win10重装系统一直黑屏)

    win10重装系统一直反复重启(win10重装系统一直黑屏)

  • 怎样增加淘宝的心级(怎样增加淘宝的流量)

    怎样增加淘宝的心级(怎样增加淘宝的流量)

  • 蜂窝移动是什么意思(蜂窝移动网络是啥意思)

    蜂窝移动是什么意思(蜂窝移动网络是啥意思)

  • 对方微信号改了还能搜到吗(对方微信号改了还能监控到对方聊天记录吗)

    对方微信号改了还能搜到吗(对方微信号改了还能监控到对方聊天记录吗)

  • 计算机主存储器的主要用途(计算机主存储器的特点是存储容量有限但存取速度快)

    计算机主存储器的主要用途(计算机主存储器的特点是存储容量有限但存取速度快)

  • 金立手机故事锁屏在哪(金立手机故事锁屏关不掉)

    金立手机故事锁屏在哪(金立手机故事锁屏关不掉)

  • 小米9pro怎么设置字体样式(小米9pro5g怎么设置)

    小米9pro怎么设置字体样式(小米9pro5g怎么设置)

  • 苹果10可以用5g吗(苹果10可以用5g网络吗)

    苹果10可以用5g吗(苹果10可以用5g网络吗)

  • xsmax第一次充电多长时间(xsmax第一次充电多久)

    xsmax第一次充电多长时间(xsmax第一次充电多久)

  • 手机如何下载直播视频(手机如何下载直播倒计时插件)

    手机如何下载直播视频(手机如何下载直播倒计时插件)

  • 乐猫智服有支付牌照吗(乐猫智服怎么帮你代还)

    乐猫智服有支付牌照吗(乐猫智服怎么帮你代还)

  • icloud有必要升级吗(icloud有必要升级到200g吗)

    icloud有必要升级吗(icloud有必要升级到200g吗)

  • 手机qq系统设置在哪里(手机qq 设置)

    手机qq系统设置在哪里(手机qq 设置)

  • tracert命令的作用详情(tracert命令的作用及用法)

    tracert命令的作用详情(tracert命令的作用及用法)

  • windows系统Python-3.6安装教程(保姆级教程)(windows pythonpath)

    windows系统Python-3.6安装教程(保姆级教程)(windows pythonpath)

  • 印花税申报是含税收入还是不含税收入
  • 公司处理固定资产的账务处理
  • 房地产中介门头
  • 实收款比应收账款少3万怎么处理
  • 预付的成本票计入什么科目?
  • 个人发票需要身份证信息吗?
  • 车费报销计入什么费用
  • 视同销售计入销售费用能税前扣除吗
  • 中小企业开业税务登记所需资料
  • 现金预算表中的利息怎么算
  • 公司存款利率
  • 无形资产增资需要缴纳个税吗
  • 刷单成本计入什么费用?
  • 出租无形资产的收入
  • 哪些业务需要编写收款凭证
  • 非独立核算的分公司是法人主体吗
  • 审核费用发票需要发票吗
  • 住宿服务住宿服务可以么
  • 提高主营业务收入的意义
  • 嵌入式软件开发工程师
  • 股权无偿赠与子女怎么办理手续
  • 未分配利润怎么消化掉 避开所得税
  • 总资产报酬率是怎么算出来的
  • 税金及附加怎么登明细账
  • 收到空头支票解释怎么写
  • macbookpro怎么打开活动监视器
  • linux系统中查看进程的命令
  • php中的require
  • ireike.exe - ireike是什么进程 有什么作用
  • 温尼伯湖成因
  • 布鲁克斯岭
  • 光下的村庄环境描写
  • kali linux如何使用
  • 时间序列转换
  • 应收账款怎么做账
  • 反斜杠python
  • controller层,service层,dao
  • 政府会计公共基础设施分类
  • 零税率和免税的含义和区别
  • 汇算清缴需要做账吗
  • 退票产生的费用如何报销
  • 研发费用凭证是发票吗
  • mysql数据类型怎么判断
  • 本年利润有余额是什么意思
  • 进项加计抵减对账怎么做
  • 应交税费已交税金是什么意思
  • 残保金是第二年交前一年的吗
  • 企业逾期贷款利息影响征信吗
  • 当月费用次月报销
  • 补缴以前年度的税
  • 应收账款可能出现贷方余额吗
  • 预期年化收益率安全吗
  • 什么是无形资产包括哪些
  • 加班餐费报销计入什么费用
  • 什么情况会影响到征信
  • 抵扣联和发票联的区别
  • 企业应该设置哪些部门
  • iis的服务
  • imac固态
  • linux中chkconfig命令的作用
  • centos硬盘扩容
  • mac怎么创建网络
  • ic_launcher.xml
  • windows移动中心英文怎么写
  • fsav32.exe是什么进程 有什么作用 fsav32进程查询
  • win7主题服务未运行怎么办
  • linux ftp搭建教程
  • windows网络诊断在哪
  • Win10无法获取ipv4
  • linux简单常用命令
  • Express作者TJ告别Node.js奔向Go
  • javascript文本框获得焦点
  • jQuery+formdata实现上传进度特效遇到的问题
  • 社保所属期起和所属期止是什么意思区别
  • 国家税务江苏税务总局官网
  • 土地增值税网上申报流程
  • 临时税务登记有效期怎么填
  • 山东2022新生儿数量统计表
  • 广东发票查验平台下载
  • 税务总局四个确保
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设