当前位置: 首页 > article >正文

Vue.js学习笔记(八)H5性能优化——首屏加载速度提升

文章目录

    • 概要
    • 组件按需引入
    • 路由懒加载
    • 打包压缩

概要

H5的首屏加载速度提升,性能优化方法总结,注:项目使用vue-cli3进行创建。

组件按需引入

避免在 main.js 文件中全局导入组件,以Vant4为例。

1、安装以下两个插件,可以自动引入组件和样式。

npm i @vant/auto-import-resolver unplugin-vue-components unplugin-auto-import -D

2、在 vue.config.js 文件中配置

const { defineConfig } = require('@vue/cli-service')
const { VantResolver } = require('@vant/auto-import-resolver');
const AutoImport = require('unplugin-auto-import/webpack');
const Components = require('unplugin-vue-components/webpack');
module.exports = defineConfig({
  configureWebpack: config => {
      //按需引入组件样式
      AutoImport.default({
        resolvers: [VantResolver()],
      }),
      Components.default({ resolvers: [VantResolver()] }),
    );
    };
  },
})

3、图片懒加载、提示等根据需要在 main.js 单独引入。

import 'vant/es/toast/style';
import { Lazyload } from 'vant';

路由懒加载

使用import在路由加载函数中实现组件或模块的动态导入,这样,只有当路由被访问时,对应的资源才会被加载。

import {createRouter, createWebHashHistory} from 'vue-router';

const routes = [
    {
        path: '/',
        name: 'home',
        component: () => import('@/view/home/myHome')
    },
]


const router = createRouter({
    history: createWebHashHistory(),
    routes
})

export default router

打包压缩

1.安装插件compression-webpack-plugin

npm i -D compression-webpack-plugin 

2、在 vue.config.js 文件中配置

const { defineConfig } = require('@vue/cli-service')
const CompressionWebpackPlugin = require('compression-webpack-plugin');
module.exports = defineConfig({
  configureWebpack: config => {
    config.plugins.push(
    // 压缩,需要前后端一起配置
      new CompressionWebpackPlugin({
        test: /\.(js|css|html|svg|woff|ttf|json)$/, // 匹配需要压缩的文件类型
        threshold: 10240, // 只有文件大小大于此值的文件才会被压缩(单位:字节)
      }),
    );
    //打包分割配置
    config.optimization = {
      runtimeChunk: 'single',
      splitChunks: {
        chunks: 'all',//对同步异步加载资源都进行处理
      },
    };
  },

})


http://www.kler.cn/a/544161.html

相关文章:

  • 关于 IoT DC3 中设备(Device)的理解
  • 机器学习分类整理【表格版】分类角度、名称、概念、常见算法、典型案例
  • 在实体机和wsl2中安装docker、使用GPU
  • 使用 Go 语言调用 SiliconFlow 语音生成 API 的脚本,用于将文本转换为 MP3 格式的语音文件。
  • SpringBoot中的Javaconfig
  • deepseek和chatgpt对比
  • DeepSeek之Api的使用(将DeepSeek的api集成到程序中)
  • React 第二十四节 useDeferredValue Hook 的用途以及注意事项详解
  • 热更图片方案
  • 【STM32】通过HAL库Flash建立FatFS文件系统并配置为USB虚拟U盘MSC
  • 构建Python量化交易环境:从基础安装到项目创建
  • STM32 RCC功能说明 复位和时钟控制RCC
  • 自然语言处理(NLP)在智能语音助手中的应用进展
  • ECharts鼠标悬浮提示框数字设置鼠标在左侧时 tooltip 显示到右侧,鼠标在右侧时 tooltip 显示到左侧。
  • git fetch和git pull 的区别
  • 1. 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。2. 基于 openEuler 构建 LVS-DR 群集。
  • 算法练习0212
  • 用什么格式的文件存储双语对照的文本比较好
  • ARM Cortex-M3/M4 权威指南 笔记【二】架构
  • GitCode 助力 Dora SSR:开启游戏开发新征程
  • 4-电脑一连接上自动弹框到路由器web配置页面
  • react 创建项目报错(react19)详细解决办法
  • forwardRef
  • 朝天椒USB服务器让RPA机器人远程连接网银U盾
  • DeepSeek 的 API 服务引入 WPS Office
  • ?.、??、||分别是什么,又有哪些区别???