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

  • 主动删除的微信聊天记录能恢复吗(主动删除的微信好友加回来需要验证吗)

    主动删除的微信聊天记录能恢复吗(主动删除的微信好友加回来需要验证吗)

  • 华为nova9是5g手机吗(nova 9是5g手机还是4g手机)

    华为nova9是5g手机吗(nova 9是5g手机还是4g手机)

  • realme gt neo2怎么设置抬起亮屏(realmegtneo2怎么开启2个灯)

    realme gt neo2怎么设置抬起亮屏(realmegtneo2怎么开启2个灯)

  • 魅族手机hd是什么意思(魅族手机上有个hd怎么关掉)

    魅族手机hd是什么意思(魅族手机上有个hd怎么关掉)

  • 小天才手表耗电太快(小天才手表耗电快)

    小天才手表耗电太快(小天才手表耗电快)

  • 封号还能看到朋友圈吗(封号是不是看不到朋友圈吗)

    封号还能看到朋友圈吗(封号是不是看不到朋友圈吗)

  • 抖音里可能认识的人是什么意思(抖音里可能认识的人是怎么推荐的)

    抖音里可能认识的人是什么意思(抖音里可能认识的人是怎么推荐的)

  • 光脑和电脑的不同有(光脑比一般的电脑聪明但是他有人脑聪明吗)

    光脑和电脑的不同有(光脑比一般的电脑聪明但是他有人脑聪明吗)

  • qq为什么不能匹配聊天(我的qq突然就不能匹配了)

    qq为什么不能匹配聊天(我的qq突然就不能匹配了)

  • 微信交易单号能看出什么来(微信交易单号能查到付款人吗)

    微信交易单号能看出什么来(微信交易单号能查到付款人吗)

  • 苹果手机充一晚电好吗(苹果手机充一晚上电可以吗)

    苹果手机充一晚电好吗(苹果手机充一晚上电可以吗)

  • 微信投票怎么做(微信投票怎么做秀米)

    微信投票怎么做(微信投票怎么做秀米)

  • 淘宝退货方式选哪个啊(淘宝退货方式选择自行退件怎么改地址)

    淘宝退货方式选哪个啊(淘宝退货方式选择自行退件怎么改地址)

  • 微信发广告封号怎么办(微信发广告封号承诺书)

    微信发广告封号怎么办(微信发广告封号承诺书)

  • 美图数据线什么接口(美图t8s数据线)

    美图数据线什么接口(美图t8s数据线)

  • 三星note9国内发布时间(三星note9发布)

    三星note9国内发布时间(三星note9发布)

  • 抖音聊天记录多久可以撤回(抖音聊天记录多久就查不到了)

    抖音聊天记录多久可以撤回(抖音聊天记录多久就查不到了)

  • mate30pro音量怎么调(mate30por调音量)

    mate30pro音量怎么调(mate30por调音量)

  • 淘宝怎么发视频给卖家(淘宝怎么发视频挂链接)

    淘宝怎么发视频给卖家(淘宝怎么发视频挂链接)

  • hryal00t是什么型号(hryal00是什么型号)

    hryal00t是什么型号(hryal00是什么型号)

  • 照片上下黑色框怎么弄(照片上下黑边)

    照片上下黑色框怎么弄(照片上下黑边)

  • 抖音随拍和短视频区别(抖音随拍和短视频的区别)

    抖音随拍和短视频区别(抖音随拍和短视频的区别)

  • t99平台是什么(t99咋样)

    t99平台是什么(t99咋样)

  • p30设置24小时(华为p30怎么设置24小时制)

    p30设置24小时(华为p30怎么设置24小时制)

  • 3gnet和3gwap有什么区别(3gnet和3gwap有什么区别的行业规定)

    3gnet和3gwap有什么区别(3gnet和3gwap有什么区别的行业规定)

  • 魅族16屏幕比例(魅族16 屏幕比例)

    魅族16屏幕比例(魅族16 屏幕比例)

  • 【Pytorch】torch. matmul()(pytorch .pt)

    【Pytorch】torch. matmul()(pytorch .pt)

  • 小型微利企业税率2023
  • 税务局退税多久到账
  • 营业执照备案登记流程
  • 借贷必相等为什么是错的
  • 房屋置换以房换房政策2019
  • 并购重组资产怎么算
  • 现金管理规定有哪些主要内容
  • 多缴纳的税款不退税怎么入账
  • 预付账款冲减费用
  • 基本户上的钱打到个人账户上,写什么用途
  • 专用发票报销时限
  • 外贸公司发票过期怎么办
  • 机动车销售统一票据可以抵扣吗
  • 怎么查银行账户余额
  • 无偿使用固定资产如何缴税
  • 策划公司费用怎么算
  • caxa电子图板2007教程
  • 企业亏损可以不缴纳公积金吗
  • 个人所得税住房租金可以扣多少
  • win10电脑文件夹打不开
  • 无线路由器指示灯怎么才是正常
  • 客运企业安全费用提取标准
  • php核心编程
  • 对于接受捐赠的资产价值,应计入当期损益
  • 坏账准备的方法
  • 工程项目科目如何设置
  • 销售自己使用过的旧货
  • yolov1网络结构图详解
  • 税控盘维护费全额抵扣分录怎么做
  • vue cannot set property
  • jsp使用教程
  • vue.js简介
  • 下脚料收入计入什么科目
  • 增值税普通发票需要交税吗
  • 小微企业所得税优惠政策最新2022
  • 货物名称和发票上的不一致
  • 物业合并利润表怎么填
  • 什么情况个税可以扣除
  • 承包经营所得适用比例税率
  • 工业企业的会计核算程序
  • 无形资产的税收优惠政策
  • 应交增值税负数表示什么
  • 企业汇算清缴中的职工薪酬指的是管理费用中的吗
  • 员工的交通费发票可以报销嘛
  • 查补以前年度所得税
  • 专票已认证但又不能抵扣
  • 商标使用权入股要交税吗
  • 钱汇错了报警有用吗
  • 如何处理公益性岗位问题
  • 资产负债表中的股东权益由什么组成
  • 招聘一年以内
  • 财务独立核算的条件
  • 预收账款账务处理分录
  • 饭店卖烟酒需要什么手续
  • 工商联络注册
  • 税种工会经费
  • SSB(SQLservice Service Broker) 入门实例介绍
  • mysql解压版安装教程5.7.20
  • sql数据库还原方法
  • windows2008 iis7如何取消目录执行权限的详细图文介绍
  • ubuntu怎么禁用nouveau
  • 2t硬盘如何分区最合理
  • linux系统检测
  • remind32.exe - remind32是什么进程 有什么用
  • win8任务管理器打不开怎么办
  • unity开发的小游戏
  • python的导入
  • pygame rect.move
  • powershell实战指南
  • 批处理是什么
  • js tab选项卡
  • js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
  • nodejs开启多线程
  • js effect
  • jquerycdn
  • jquery实现原理
  • 贵州省发票流向查询
  • 什么是城建税的纳税义务人
  • 税务总局各司领导名单
  • 职业年金利息计入哪个科目里面
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设