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

  • 销项税减去进项税
  • 如何计算转让金融商品盘亏应交增值税
  • 中级报名的报考条件要求
  • 间接费包含哪些具体内容
  • 根据付款申请单付款
  • 已认证未抵扣的进项怎么填写
  • 一般纳税人建筑工程税率是多少
  • 纳税人性质怎么改
  • 出纳取备用金需要交税吗
  • 法人把自己的车租给公司交什么税
  • 房地产开发企业的土地使用权计入哪里
  • 子公司注销资金还母公司冲实收资本吗
  • 通过扣缴义务人和综合申报哪个好
  • 已纳消费税税款允许扣除的是
  • 建总账的注意事项
  • 对公网银支付方式可以选哪些
  • 会计报表的附表包括哪些
  • 出售股票会计怎么做分录
  • 进项税发票不认证可以吗
  • 低值易耗品进项税额转出账务处理
  • 纳税人在什么情况下可以申请延期申报
  • 汇算清缴已退税的还可以作废吗
  • 超市开具预付卡发票不征税发票上税吗
  • 收到一张增值税红冲发票
  • 附加税减免要计税吗
  • 微信订阅项目
  • 现金日记账漏记一笔怎么办
  • 存入保证金账户分录怎么写
  • 最小的的照片
  • phpcms怎么用
  • 税收筹划的税种
  • php rediscluster
  • php imagettftext
  • 职工教育经费计入管理费用吗
  • 【已解决】VUE3+webpack >5报错问题
  • 外经证逾期未核实怎么办
  • laravel 5.3中自定义加密服务的方案详解
  • vue里面的路由
  • docker的常用命令汇总
  • 公司帐户到银行怎么取钱
  • 残疾人保障金计入哪个会计科目
  • 员工加班打车费报销
  • 预收货款开具专用发票
  • 费用报销单里的类别怎么填
  • 工业生产的含义
  • 什么叫财务台账
  • 处置可供出售金融资产原先进入公允价值变动损益
  • 固定资产加速折旧是什么意思
  • 会计凭证销毁年限
  • 销售返利的账务处理案例
  • 租赁厂房生产是生产经营活动吗
  • 自己公司刷自己的信用卡
  • 开业费用是什么意思
  • sqlserver性能优化方案
  • Windows Server 2003几个实用小技巧
  • openssl安装教程
  • ubuntu左侧菜单不见了
  • linux sed-i
  • macos catalin
  • windows 8
  • win7如何显示文件扩展
  • python函数详解
  • js date()
  • mvp功能
  • javascript运行环境有哪些
  • [置顶]星陨计划
  • IE6支持position:fixed完美解决方法
  • 分页jsp
  • cmd新建
  • python3+PyQt5实现使用剪贴板做复制与粘帖示例
  • nodejs搭建网站
  • 数字图像处理期末考试
  • 查看接入安卓终端密码
  • shell脚本中实现rm -fr !(file1)
  • unity script api
  • 安卓自定义动态壁纸
  • javascript bug
  • 广西税务12366怎么查询发票
  • 医院开具的电子票据是发票吗
  • 重庆税务局发票作废怎么处理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设