位置: 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云服务器跑深度学习(怎么租一个月)

  • 4个秘诀,看他们是如何抓住新客户的(看那个方法)

    4个秘诀,看他们是如何抓住新客户的(看那个方法)

  • 苹果手机怎么设置电话打不进来但可以上网(苹果手机怎么设置来电闪光灯闪烁)

    苹果手机怎么设置电话打不进来但可以上网(苹果手机怎么设置来电闪光灯闪烁)

  • 蚂蚁庄园缺铁吃什么补得最快(蚂蚁庄园 补钙)

    蚂蚁庄园缺铁吃什么补得最快(蚂蚁庄园 补钙)

  • 苹果手机然如何调中文版(iphone手机好吗)

    苹果手机然如何调中文版(iphone手机好吗)

  • qq共同好友怎么关闭(qq共同好友怎么找出来具体的人)

    qq共同好友怎么关闭(qq共同好友怎么找出来具体的人)

  • 微信加人过于频繁什么时候才能加(微信加人过于频繁多久会恢复)

    微信加人过于频繁什么时候才能加(微信加人过于频繁多久会恢复)

  • 华为nova7se的返回键在哪(华为nova7se设置返回键)

    华为nova7se的返回键在哪(华为nova7se设置返回键)

  • 苹果ID里面的市级行政区是什么意思(苹果id里面的市级行政区是什么意思)

    苹果ID里面的市级行政区是什么意思(苹果id里面的市级行政区是什么意思)

  • 钉钉能不能拉黑好友(钉钉能不能拉黑老师)

    钉钉能不能拉黑好友(钉钉能不能拉黑老师)

  • 微信没有删除好友却没有了(微信没有删除好友怎么不存在了)

    微信没有删除好友却没有了(微信没有删除好友怎么不存在了)

  • 小米mix2卡顿解决方案(小米mix2很卡)

    小米mix2卡顿解决方案(小米mix2很卡)

  • 怎么在图片中提取文字(怎么在图片中提取线稿)

    怎么在图片中提取文字(怎么在图片中提取线稿)

  • oppopcem00是什么型号 (oppo pcemoo是什么型号)

    oppopcem00是什么型号 (oppo pcemoo是什么型号)

  • 华为怎么取消信息振动(华为怎么取消信息拦截功能)

    华为怎么取消信息振动(华为怎么取消信息拦截功能)

  • 腾讯会议能美颜吗(腾讯会议能美颜视频吗)

    腾讯会议能美颜吗(腾讯会议能美颜视频吗)

  • 亚马逊海外自营是什么意思(亚马逊海外自营多久发货)

    亚马逊海外自营是什么意思(亚马逊海外自营多久发货)

  • ipad如何设置小白点(iPad如何设置小窗口)

    ipad如何设置小白点(iPad如何设置小窗口)

  • 苹果手机一年内可以免费换电池吗(苹果手机一年内屏幕碎了能保修吗)

    苹果手机一年内可以免费换电池吗(苹果手机一年内屏幕碎了能保修吗)

  • 小米8忘记密码怎么解锁(小米8忘记密码怎么解锁手机)

    小米8忘记密码怎么解锁(小米8忘记密码怎么解锁手机)

  • 拼多多拼单返现返到哪里(拼多多拼单返现金是真的吗)

    拼多多拼单返现返到哪里(拼多多拼单返现金是真的吗)

  • 怎么生成淘口令(淘宝怎么生成淘口令)

    怎么生成淘口令(淘宝怎么生成淘口令)

  • 小爱音箱怎么改唤醒词(小爱音箱怎么改音乐播放源)

    小爱音箱怎么改唤醒词(小爱音箱怎么改音乐播放源)

  • cad截图怎么变成白色(cad如何截图为图片)

    cad截图怎么变成白色(cad如何截图为图片)

  • 浅谈帝国cms设置伪静态的方法(帝国cms到底好不好)

    浅谈帝国cms设置伪静态的方法(帝国cms到底好不好)

  • 全国增值税发票查验平台
  • 土地 税
  • 累计交税如何计算?
  • 公司卖出货物没有入库记录如何做账?
  • 企业所得税为什么那么高
  • 贴现的日期怎么算
  • 用于职工住宿的会计科目
  • 销售折让会影响单价吗
  • 有限合伙企业分红避税
  • 税控盘抵减增值税需要结转吗
  • 冲去年其他应付款做管理费用凭证
  • 部分销售退回怎么开票
  • 收到的财政补贴如何做账
  • 工资退回怎么处理
  • 补提以前年度个税会计分录
  • 正在注销的公司微信收的款怎么追回
  • 小规模代开增值税专票开错了如何处理?
  • 报税没有申报现金流量表
  • 纳税信用被评为D级怎么办
  • 开具发票超出企业经营范围属于虚开发票吗??
  • 信托公司如何投资
  • 一般纳税人能用小企业会计准则吗
  • 非流动资产处置净收益是指什么
  • 未确认融资费用摊销额怎么计算
  • 成本法核算长期股权投资初始投资成本
  • 增值税申报表中期初未缴税额指什么
  • 红字发票做进项税额转出是做借方红字吗
  • 农产品零税率
  • 库存现金的收支账务处理
  • 各部门领料情况,a产品耗用甲材料3200元
  • 计划成本法存货成本的确定
  • 高新技术企业的研发费用加计扣除
  • 期货公司向客户收取的保证金属于谁所有
  • 关于javascript
  • php文件注释标记是什么
  • 收取包装物押金税率
  • 福利企业的税收怎么算
  • php反射的原理
  • 土地出让金抵减增值税账务处理
  • 今天是520该说什么
  • 左右等宽上下等高的字有哪些
  • 汽车检测没过收钱不
  • es6promise的理解
  • 外经证过期没核销罚多少钱
  • 如何在对公账户对账操作
  • 北京社保月平均工资
  • 开发阶段发生的费用计入什么科目
  • 约当产量法的含义
  • 注册资金印花税税率是多少,怎么计算?
  • 支付所得税属于经营活动产生的现金流量吗
  • sql查询表中指定数据
  • 车险 保险金额
  • 个人所得税是全国联网的吗
  • 房地产增值税可以抵扣吗
  • 待处理财产损益借方增加还是减少
  • 成品油办法废止后,加油站还需办理成品油许可证吗
  • 土地使用税如何计算缴纳
  • 收到代理服务费怎么做分录呢
  • 出口退税进项发票会计分录
  • 以前年度发票退回了不重开怎么处理
  • 进项税额转出还要交税吗
  • 零星采购多少不需要发票
  • Windows计划任务 不管是否登录 没有窗口
  • win7系统怎样设置
  • ubuntu系统怎么修改root密码
  • win7怎么随便放桌面图标
  • win8/10功能
  • 在linux中使用什么命令可以执行shell脚本
  • win8.1连不上wifi
  • 简单理解贴现
  • jquery弹出窗口的方法
  • 很好的无光照模式叫什么
  • android studio unity3d
  • android-ListView(1)-listview概览
  • 浅谈javascript网页编码特效论文
  • python 时间戳与格式化时间的转化实现代码
  • 国家税务总局增值税发票查验平台网址
  • 河北税务怎么查询交了没有
  • 央企收入归谁
  • 四川地方税务局官网首页
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设