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

  • 微信我的企业怎么退出删掉(微信我的企业怎么建立的)

    微信我的企业怎么退出删掉(微信我的企业怎么建立的)

  • 小米手机无痕浏览模式怎么关闭(小米手机无痕浏览怎么找到浏览记录)

    小米手机无痕浏览模式怎么关闭(小米手机无痕浏览怎么找到浏览记录)

  • 苹果11可以更新13.5系统吗(苹果11可以更新16.1.2系统吗)

    苹果11可以更新13.5系统吗(苹果11可以更新16.1.2系统吗)

  • cpu分为哪几种类型(cpu有什么分类)

    cpu分为哪几种类型(cpu有什么分类)

  • 机顶盒没有信号怎么办,连不上无线网络(机顶盒没有信号强度)

    机顶盒没有信号怎么办,连不上无线网络(机顶盒没有信号强度)

  • nova5卡槽是哪个(华为nova5卡槽孔是哪个)

    nova5卡槽是哪个(华为nova5卡槽孔是哪个)

  • 微信读书无限卡还有时间为什么不能看(微信读书无限卡有什么用)

    微信读书无限卡还有时间为什么不能看(微信读书无限卡有什么用)

  • m2和ssd有什么区别(ssd和m2的实际体验)

    m2和ssd有什么区别(ssd和m2的实际体验)

  • mq8j2ch a是什么型号(mq8j2cha是什么型号)

    mq8j2ch a是什么型号(mq8j2cha是什么型号)

  • 亚马逊vps是什么意思(亚马逊vps是什么意思超级vps管理器)

    亚马逊vps是什么意思(亚马逊vps是什么意思超级vps管理器)

  • 计算机软件分为哪两大类(计算机软件分为系统软件和应用软件操作系统属于)

    计算机软件分为哪两大类(计算机软件分为系统软件和应用软件操作系统属于)

  • wps目录怎么自动生成(wps目录怎么自动更新页码)

    wps目录怎么自动生成(wps目录怎么自动更新页码)

  • 京东app取消退款在哪里(京东商城取消退款申请)

    京东app取消退款在哪里(京东商城取消退款申请)

  • 饿了么怎样给异地点餐(饿了吗怎么给异地人点)

    饿了么怎样给异地点餐(饿了吗怎么给异地人点)

  • 3D电影制作原理是什么(3d电影原理)

    3D电影制作原理是什么(3d电影原理)

  • vivox27电池耐用吗(vivo手机x27电池可以用多长时间)

    vivox27电池耐用吗(vivo手机x27电池可以用多长时间)

  • facetime视频收费吗

    facetime视频收费吗

  • 滴滴报备功能在哪里(滴滴车主报备功能在哪里)

    滴滴报备功能在哪里(滴滴车主报备功能在哪里)

  • oppok3充电多久充满(oppok3充电要多久)

    oppok3充电多久充满(oppok3充电要多久)

  • win7强行删除开机密码(win7强行删除开机密码视频)

    win7强行删除开机密码(win7强行删除开机密码视频)

  • 苹果录屏自动中断(苹果录屏老是自动结束)

    苹果录屏自动中断(苹果录屏老是自动结束)

  • 爱奇艺解绑银行卡绑定(爱奇艺解绑银行卡的支付密码是什么)

    爱奇艺解绑银行卡绑定(爱奇艺解绑银行卡的支付密码是什么)

  • 怎么发截图给微信好友(怎么发截图给微信朋友看)

    怎么发截图给微信好友(怎么发截图给微信朋友看)

  • 在树洞中休息的鸣角鸮,纽约马萨皮夸保护区 (© Vicki Jauron, Babylon and Beyond Photography/Getty Images)(在树洞中休息的英语)

    在树洞中休息的鸣角鸮,纽约马萨皮夸保护区 (© Vicki Jauron, Babylon and Beyond Photography/Getty Images)(在树洞中休息的英语)

  • 缴纳当月的增值税
  • 车船税征税范围口诀
  • 增值税普通发票怎么开
  • 学生兼职怎么交个人所得税吗
  • 工业企业取得土地收益
  • 资产总额增长幅度怎么算
  • 金税四期已经开始了吗
  • 税控盘及维护费的会计分录
  • 去年缴纳印花税忘记做账了怎么办呢
  • 申报增值税之后怎么做账
  • 民营企业的待遇
  • 房地产企业如何进行市场细分
  • 工业企业会计错账处理方法有哪些
  • 个体工商户怎么注销
  • 企业收回以前注销时的坏账准备余额怎么处理?
  • 核定征收的个人所得税怎么申报
  • 印花税已经缴纳了还需要申报
  • 增值税发票处理流程
  • 增值税税控系统专用设备注销发行
  • 茶叶加食用盐的妙用
  • 公司购买的一次性纸杯计入哪个科目
  • 外币折算差额计入什么科目
  • 二月份个税申报时间
  • 公司没有残疾人要交残疾人保障金吗
  • 个体工商户要交附加税吗
  • 已抵扣未认证的发票
  • 我想设置应用
  • 股东分红的会计科目怎么做
  • 细说php
  • 应付债券包括
  • 小规模纳税人结转免交增值税
  • 员工垫付的钱会计分录
  • 进程mmc.exe
  • 一只猫在花园里英语
  • 工业企业成本核算方法
  • PHP:imagepalettetotruecolor()的用法_GD库图像处理函数
  • php cookie session
  • 选择器优先级
  • vue笔记大全
  • 资产基金的明细科目
  • 固定资产家具用具包括什么
  • 城市维护建设税是什么意思
  • 运输发票税金如何入账
  • php采集器
  • db2udb
  • 建筑企业提供服务的机制保障
  • 政府补助的相关法律法规
  • 删除mysql数据库用户
  • 申报企业所得税会计分录怎么写
  • 残保金属于职工社保吗
  • 合作建房项目
  • 收到所得税退税怎么做账务处理
  • 收到的成本票怎么做账
  • 汇算清缴缴纳的所得税怎么做账
  • 场地租赁费属于劳务还是服务
  • 会计科目费用类
  • 购买食品应注意哪些问题?
  • 清洁服务公司账务处理
  • 买别人的银行卡是啥罪
  • 零申报必须会计吗?自己可以操作吗
  • sql-3
  • 看过有趣的童话书,简单介绍下
  • mysql中索引有什么用
  • win7开机启动
  • macbookzen
  • 获取windows的最新信息
  • win8打不开咋办
  • 手机屏幕尺寸测量工具
  • perl 调用perl
  • opengl visual studio
  • android拍照
  • angularjs2
  • qq登录失败是怎么回事
  • 信息流广告与原生广告的区别
  • Android Design Support Library
  • 2018城镇土地使用税减免政策
  • 根据消费税暂行条例的规定,纳税人自产自用
  • 营销服务协议书范本
  • 亮点纷呈的意思和造句
  • 广东揭阳怎么了
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设