Vue3基础(十si)___引入Element-plus___Vant___全局引入___按需引入___测试打包大小

简介: 本文介绍了如何在Vue3项目中引入Element-plus和Vant UI库,包括全局引入和按需引入的方法,并通过配置vite.config.js实现按需引入,最后对比了不同引入方式对项目打包大小的影响。

Element-plus

Vue3升级后需要使用Element-plus版本

npm install element-plus --save

全局引入

在main入口文件中全局引入

import {
    createApp } from 'vue'
import App from './App.vue'
import './index.css'
import elementFun from 'element-plus'
import 'element-plus/lib/theme-chalk/index.css';
import router from './router'
let app = createApp(App)
app.use(elementFun)
app.use(router).mount('#app')

在这里插入图片描述
引入插件 在app上注册;引入css样式;

<template >
  <div class="container">
    <el-row>
      <el-button>默认按钮</el-button>
      <el-button type="primary">主要按钮</el-button>
      <el-button type="success">成功按钮</el-button>
      <el-button type="info">信息按钮</el-button>
      <el-button type="warning">警告按钮</el-button>
      <el-button type="danger">危险按钮</el-button>
    </el-row>
  </div>
</template>
<script>
export default {
   };
</script>
<style  scoped>
</style>

在这里插入图片描述
可以在实例插件的时候定义element的全局属性;

该对象目前支持 size 与 zIndex 字段。size 用于改变组件的默认尺寸,zIndex 设置弹框的初始 z-index(默认值:2000)

import {
    createApp } from 'vue'
import App from './App.vue'
import './index.css'
import elementFun from 'element-plus'
import 'element-plus/lib/theme-chalk/index.css';
import router from './router'
let app = createApp(App)
app.use(elementFun, {
    size: 'small', zIndex: 3000 });
app.use(router).mount('#app')

在这里插入图片描述
按需引入

main

import {
    createApp } from 'vue'
import App from './App.vue'
import './index.css'
import 'element-plus/lib/theme-chalk/index.css';
import router from './router'
import {
    ElButton, ElAlert } from 'element-plus'
let app = createApp(App)
app.use(ElButton)
app.use(ElAlert)
app.use(router).mount('#app')

在这里插入图片描述

配置按需引入

下载

 npm install vite-plugin-style-import -D

将 vite.config.js 修改为:

import {
    defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import styleImport from 'vite-plugin-style-import'

export default defineConfig({
   
    plugins: [
        vue(),
        styleImport({
   
            libs: [
                {
   
                    libraryName: 'element-plus',
                    esModule: true,
                    ensureStyleFile: true,
                    resolveStyle: (name) => {
   
                        return `element-plus/lib/theme-chalk/${
     name}.css`;
                    },
                    resolveComponent: (name) => {
   
                        return `element-plus/lib/${
     name}`;
                    },
                }
            ]
        })
    ]
})

我这里vite版本是"vite": “^2.3.0”, 本来使用的1.x.x的版本发现没defineConfig 这个方法。在学习的过程中,还是一位大佬给我确定了版本号问题~

Vant

下载依赖

npm i vant@next -S

全局引入
main

import {
    createApp } from 'vue'
import App from './App.vue'
import './index.css'
import 'element-plus/lib/theme-chalk/index.css';
import router from './router'
import {
    ElButton, ElAlert } from 'element-plus'
import Vant from 'vant';
import 'vant/lib/index.css';
let app = createApp(App)
app.use(Vant)
app.use(ElButton)
app.use(ElAlert)
app.use(router).mount('#app')

引入 vant css 在app上注册
在这里插入图片描述
按需引入

// 原始代码
import {
    Button } from 'vant';
// 编译后代码
import Button from 'vant/es/button';
import 'vant/es/button/style';

按需引入vite.config.js

import {
    defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import styleImport from 'vite-plugin-style-import'

export default defineConfig({
   
    plugins: [
        vue(),
        styleImport({
   
            libs: [
                {
   
                    libraryName: 'element-plus',
                    esModule: true,
                    ensureStyleFile: true,
                    resolveStyle: (name) => {
   
                        return `element-plus/lib/theme-chalk/${
     name}.css`;
                    },
                    resolveComponent: (name) => {
   
                        return `element-plus/lib/${
     name}`;
                    },
                },
                {
   
                    libraryName: 'vant',
                    esModule: true,
                    resolveStyle: (name) => `vant/es/${
     name}/style`,
                },
            ]
        })
    ]
})

Tips: 配置按需引入后,将不允许直接导入所有组件。

总结
全部引入
import xxx from ‘xxx’ app.use(xxx)
按需引入 需要配合插件 vite.comfig.js 配置按需引入
import {xxx } from ‘xxx’ app.use(xxx)
配合vite.config.js配置,项目会自动解析成按需引入

想实现按需引入 按需引入 加 vite.config.js 配置

打包0:开启按需打包插件在这里插入图片描述
在这里插入图片描述
打包1:开启按需打包插件
在这里插入图片描述
在这里插入图片描述
的打包2:不开启按需打包插件
在这里插入图片描述
在这里插入图片描述

打包3:开启按需打包插件在这里插入图片描述
在这里插入图片描述
解构赋值加上插件的包体积小没有插件的打包大小相差无几

当我们用全部导入的形式,开启按需加载插件和不开启打包大小是一样的。

所以推荐 {} 结构赋值 配合 按需导入插件~
所以推荐 {} 结构赋值 配合 按需导入插件~
所以推荐 {} 结构赋值 配合 按需导入插件~

目录
相关文章
|
1月前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
41 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
1月前
|
Java 测试技术 应用服务中间件
Spring Boot 如何测试打包部署
本文介绍了 Spring Boot 项目的开发、调试、打包及投产上线的全流程。主要内容包括: 1. **单元测试**:通过添加 `spring-boot-starter-test` 包,使用 `@RunWith(SpringRunner.class)` 和 `@SpringBootTest` 注解进行测试类开发。 2. **集成测试**:支持热部署,通过添加 `spring-boot-devtools` 实现代码修改后自动重启。 3. **投产上线**:提供两种部署方案,一是打包成 jar 包直接运行,二是打包成 war 包部署到 Tomcat 服务器。
50 10
|
5月前
|
JavaScript 测试技术 Windows
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
本文介绍了如何使用vue-cli和webpack为Vue项目配置不同的生产和测试环境,包括修改`package.json`脚本、使用`cross-env`处理环境变量、创建不同环境的`.env`文件,并在`webpack.prod.conf.js`中使用`DefinePlugin`来应用这些环境变量。
405 2
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
|
4月前
|
JavaScript
vue尚品汇商城项目-day07【55.编码测试与打包发布项目】
vue尚品汇商城项目-day07【55.编码测试与打包发布项目】
44 3
|
4月前
|
监控 Java Maven
springboot学习二:springboot 初创建 web 项目、修改banner、热部署插件、切换运行环境、springboot参数配置,打包项目并测试成功
这篇文章介绍了如何快速创建Spring Boot项目,包括项目的初始化、结构、打包部署、修改启动Banner、热部署、环境切换和参数配置等基础操作。
274 0
|
6月前
|
JavaScript 测试技术 API
顺藤摸瓜🍉:用单元测试读懂 vue3 中的 defineComponent
顺藤摸瓜🍉:用单元测试读懂 vue3 中的 defineComponent
|
6月前
|
JavaScript 测试技术 API
顺藤摸瓜🍉:用单元测试读懂 vue3 中的 provide/inject
顺藤摸瓜🍉:用单元测试读懂 vue3 中的 provide/inject
|
6月前
|
JavaScript 前端开发 测试技术
顺藤摸瓜🍉:用单元测试读懂 vue3 watch 函数
顺藤摸瓜🍉:用单元测试读懂 vue3 watch 函数
|
8月前
|
Java Maven
maven跳过测试清理、打包、安装
maven跳过测试清理、打包、安装
148 4
|
9月前
|
移动开发 JavaScript 前端开发
学习vue3使用在线官方开发环境play.vuejs.org进行测试
学习vue3使用在线官方开发环境play.vuejs.org进行测试
165 1

热门文章

最新文章

  • 1
    小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
  • 2
    3天功能开发→3小时:通义灵码2.0+DEEPSEEK实测报告,单元测试生成准确率92%的秘密
  • 3
    Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
  • 4
    基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
  • 5
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 6
    大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
  • 7
    「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
  • 8
    用户说 | 通义灵码2.0,跨语言编码+自动生成单元测试+集成DeepSeek模型且免费使用
  • 9
    以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
  • 10
    AxBench:斯坦福大学推出评估语言模型控制方法的基准测试框架