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:开启按需打包插件在这里插入图片描述
在这里插入图片描述
解构赋值加上插件的包体积小没有插件的打包大小相差无几

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

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

目录
相关文章
|
6天前
|
JavaScript 测试技术
Vue 3 单元测试实例
Vue 3 单元测试实例
17 4
|
6天前
|
JavaScript 测试技术 API
常见的 Vue 3 单元测试问题及解决方案
常见的 Vue 3 单元测试问题及解决方案
20 2
|
6天前
|
缓存 JavaScript 测试技术
Vue 3 单元测试最佳实践
Vue 3 单元测试最佳实践
10 1
|
2月前
|
JavaScript 测试技术 Windows
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
本文介绍了如何使用vue-cli和webpack为Vue项目配置不同的生产和测试环境,包括修改`package.json`脚本、使用`cross-env`处理环境变量、创建不同环境的`.env`文件,并在`webpack.prod.conf.js`中使用`DefinePlugin`来应用这些环境变量。
98 2
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
|
1月前
|
JavaScript
vue尚品汇商城项目-day07【55.编码测试与打包发布项目】
vue尚品汇商城项目-day07【55.编码测试与打包发布项目】
31 3
|
1月前
|
监控 Java Maven
springboot学习二:springboot 初创建 web 项目、修改banner、热部署插件、切换运行环境、springboot参数配置,打包项目并测试成功
这篇文章介绍了如何快速创建Spring Boot项目,包括项目的初始化、结构、打包部署、修改启动Banner、热部署、环境切换和参数配置等基础操作。
120 0
|
3月前
|
JavaScript 测试技术 API
顺藤摸瓜🍉:用单元测试读懂 vue3 中的 defineComponent
顺藤摸瓜🍉:用单元测试读懂 vue3 中的 defineComponent
|
3月前
|
JavaScript 测试技术 API
顺藤摸瓜🍉:用单元测试读懂 vue3 中的 provide/inject
顺藤摸瓜🍉:用单元测试读懂 vue3 中的 provide/inject
|
3月前
|
JavaScript 前端开发 测试技术
顺藤摸瓜🍉:用单元测试读懂 vue3 watch 函数
顺藤摸瓜🍉:用单元测试读懂 vue3 watch 函数
|
5月前
|
Java Maven
maven跳过测试清理、打包、安装
maven跳过测试清理、打包、安装
124 4