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

  • reference by pointer 蓝屏(reference by pointer 蓝屏怎么解决)

    reference by pointer 蓝屏(reference by pointer 蓝屏怎么解决)

  • oppofindx2pro屏幕刷新率多少(oppofindx2pro屏幕刷新率)

    oppofindx2pro屏幕刷新率多少(oppofindx2pro屏幕刷新率)

  • switch主机不给手柄充电(switch连主机没反应)

    switch主机不给手柄充电(switch连主机没反应)

  • 苹果手表可以不连手机吗(苹果手表可以不连接手机单独使用吗)

    苹果手表可以不连手机吗(苹果手表可以不连接手机单独使用吗)

  • 快手极速版朋友送卡怎么领取(快手极速版朋友变成放映厅)

    快手极速版朋友送卡怎么领取(快手极速版朋友变成放映厅)

  • 在计算机网络中通常把提供并管理共享资源的计算机称为(在计算机网络中,英文缩写WAN的中文名是)

    在计算机网络中通常把提供并管理共享资源的计算机称为(在计算机网络中,英文缩写WAN的中文名是)

  • 荣耀30pro能不能无线充电(荣耀30pro能不能插内存卡)

    荣耀30pro能不能无线充电(荣耀30pro能不能插内存卡)

  • 苹果一年内免费保修什么(苹果一年内免费保修屏幕)

    苹果一年内免费保修什么(苹果一年内免费保修屏幕)

  • 路由桥接网速少一半(桥接路由器上网慢)

    路由桥接网速少一半(桥接路由器上网慢)

  • 华为p40pro有微距吗(华为p40pro有微距镜头吗)

    华为p40pro有微距吗(华为p40pro有微距镜头吗)

  • power键是什么键(power 键)

    power键是什么键(power 键)

  • 手机充电无反应不开机(手机充电无反应是什么原因)

    手机充电无反应不开机(手机充电无反应是什么原因)

  • 探探卸载了为什么还显示活跃时间(探探卸载了为什么还会显示登录)

    探探卸载了为什么还显示活跃时间(探探卸载了为什么还会显示登录)

  • psd源文件是什么(psd是源文件嘛)

    psd源文件是什么(psd是源文件嘛)

  • 门店地图定位怎么弄(门店地图定位怎么弄没有营业执照)

    门店地图定位怎么弄(门店地图定位怎么弄没有营业执照)

  • 朋友圈每天删除有上限吗(朋友圈一天删除多少就删除失败了)

    朋友圈每天删除有上限吗(朋友圈一天删除多少就删除失败了)

  • 红米k20pro怎么打开OTG(红米k20pro操作指南)

    红米k20pro怎么打开OTG(红米k20pro操作指南)

  • 龙江人社网络异常什么情况(龙江人社网络异地登录)

    龙江人社网络异常什么情况(龙江人社网络异地登录)

  • 苹果手表电量能用多久(苹果手表电量能在手机上看吗)

    苹果手表电量能用多久(苹果手表电量能在手机上看吗)

  • 手机号不用了怎么注销抖音(手机号不用了怎么找回微信)

    手机号不用了怎么注销抖音(手机号不用了怎么找回微信)

  • 小米路由器3是千兆路由器吗(小米路由器3是否支持mesh组网)

    小米路由器3是千兆路由器吗(小米路由器3是否支持mesh组网)

  • lazada是阿里巴巴的吗(阿里巴巴lazada财报)

    lazada是阿里巴巴的吗(阿里巴巴lazada财报)

  • 退款成功没有收到退款(退款成功没有收到钱怎么办)

    退款成功没有收到退款(退款成功没有收到钱怎么办)

  • 爱奇艺视频怎么下载到手机相册(爱奇艺视频怎么剪辑一段)

    爱奇艺视频怎么下载到手机相册(爱奇艺视频怎么剪辑一段)

  • win11后台运行的应用怎么关闭? win11禁止应用后台运行的技巧(win11系统进程)

    win11后台运行的应用怎么关闭? win11禁止应用后台运行的技巧(win11系统进程)

  • Linux系统中使用iostat命令检测磁盘的IO性能(linux i)

    Linux系统中使用iostat命令检测磁盘的IO性能(linux i)

  • 一般纳税人资格证明
  • 企业增值税怎么做账务处理
  • 小规模纳税人自动升为一般纳税人条件
  • 没有抵扣的进项发票,开错了对方没有作废
  • 培训学校教具记在什么费用
  • 信息技术服务企业研发费用加计扣除
  • 建筑劳务公司业务范围是什么
  • 未取得房屋产权证的房屋法院可以拍卖吗
  • 合并会计报表编制讲解视频
  • 收到退款如何做账
  • 上月未抵扣完的进项税额
  • 外购材料费用可能计入
  • 企业接收供应商赠品怎么正确的入账?
  • 供应链公司的组织架构图
  • 拆除固定资产的补偿款
  • 企业开发票的人员要经过培训吗?
  • 支付的各项税费包括个人所得税吗
  • 残保金补报
  • 网络科技定额发票怎么做分录?
  • 收回购货方前欠货款属于什么
  • 进项税和销项税怎么理解
  • 原材料实际成本法核算问题
  • 幼儿园开发成本
  • 工程物资期末余额应在资产负债表中填列?
  • 贸易型企业怎么做账
  • 怎么找回被册的软件
  • 配置足够但玩游戏卡顿
  • 教学用品列入什么费用
  • win11怎么录屏游戏
  • 住房贷款利息支出专项附加抵扣
  • 收取包装物押金税率
  • php目录列表
  • 国有控股公司改制
  • 公司企业名称变更,银行账号会变吗
  • php设置header参数
  • 嵌入html
  • linux进程状态有哪些
  • 金蝶软件做帐流程
  • 预付劳务款项会计分录
  • 织梦cms要钱吗
  • 小规模所得税申报表利润总额是填季报吗
  • 客户不要的专票我们可以不作废吗
  • 购房发票可以对折吗
  • 认缴出资和注册资本
  • wordpress图片大小设置
  • Sqlite数据库里插入数据的条数上限是500
  • 公司法人和经理的区别
  • 企业做账会计分录流程
  • access调用sql
  • 清空表sql语句
  • 收付实现制的适用范围
  • 增值是什么意思解释
  • 以前年度多交的房产税现在收到退税款了咋做分录
  • 现金等价物的特征是
  • 公司购买股票会计分录怎么做
  • 多计提的个人所得税退给员工怎么处理
  • 国家高新技术企业补贴
  • 利润表的营业成本包括管理费用吗
  • 咨询费的支出范围
  • 培训费产生的差额怎么算
  • 如何判断企业实际控制人
  • 初中学历学会计难不难
  • 税审报告一定要税所主任签吗
  • 银行汇票如何兑现金
  • 实收资本怎么入账?
  • 公司流水账怎么做
  • MySQL 5.7双主同步部分表的实现过程详解
  • mysql 元组
  • u盘重装操作系统怎么办
  • 装win8.1
  • win10怎么这只让任务栏图标居中显示?
  • windows 10预览版
  • js定义数字
  • jquery validation
  • unity 移动端
  • vuex按需加载
  • Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
  • python周期性分析
  • 税控盘离线开票时间怎么查
  • 如何查询公司的电话号码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设