欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > vue+vite 减缓首屏加载压力和性能优化

vue+vite 减缓首屏加载压力和性能优化

2025/4/19 15:56:42 来源:https://blog.csdn.net/github_37847992/article/details/147259576  浏览:    关键词:vue+vite 减缓首屏加载压力和性能优化

vue+vite 减缓首屏加载压力和性能优化

    • 1、预加载项目必需的组件
    • 2、模块加载优化
    • 3、HMR 热更新优化
    • 4 、环境配置优化
    • 5、代码模式优化
    • 6、高级优化技巧
    • 7、架构级优化
    • 打包压缩配置

在vue+vite构建的工程里面,性能优化分为开发环境和打包后的生产环境,作为开发首先需要把找个了解清楚,接下来分别解析在开发和生产处理的方案,不多说,直接上代码。

1、预加载项目必需的组件

 // 预加载项目必需的组件optimizeDeps: {include: ["vue","vue-router","pinia","axios","@vueuse/core","sortablejs","exceljs","path-to-regexp","echarts","@wangeditor/editor","@wangeditor/editor-for-vue","vue-i18n","vue-echarts","echarts-liquidfill","path-browserify","lodash","moment",],},

这个配置是写入vite.config.ts 配置文件里面,optimizeDeps和plugins 同级别

2、使用 vite-plugin-optimize-persist 自动生成最优预构建配置

npm install vite-plugin-optimize-persist -D
import OptimizationPersist from 'vite-plugin-optimize-persist'export default {plugins: [OptimizationPersist()]
}

2、模块加载优化

按需加载架构

import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'export default {plugins: [Components({resolvers: [ElementPlusResolver()]})]
}

动态导入辅助

<script setup>
import { defineAsyncComponent } from 'vue'
const HeavyComponent = defineAsyncComponent(() => import('./components/HeavyComponent.vue')
)
</script>

3、HMR 热更新优化

文件监听策略

export default {server: {watch: {usePolling: true,interval: 1000,ignored: ['**/node_modules/**','**/.git/**','**/dist/**']}}
}

智能缓存策略

export default {cacheDir: './.custom_vite_cache',build: {rollupOptions: {cache: false // 开发环境保持启用}}
}

4 、环境配置优化

NODE_OPTIONS="--max-old-space-size=4096" vite

5、代码模式优化

Tree-shaking 增强

export default {build: {rollupOptions: {treeshake: {preset: 'recommended',moduleSideEffects: (id) => !/\.css$/.test(id)}}}
}

Dead Code 检测

import { defineConfig } from 'vite'
import deadcode from 'vite-plugin-deadcode'export default defineConfig({plugins: [deadcode({patterns: ['src/**/*.(js|vue)']})]
})

6、高级优化技巧

GPU 加速渲染

.gpu-accelerate {transform: translateZ(0);backface-visibility: hidden;perspective: 1000px;
}

内存优化策略

// 使用 WeakMap 存储大型临时数据
const cache = new WeakMap()export function useHeavyCalculation() {// 内存敏感操作
}

7、架构级优化

微前端优化

// 子应用配置
export default {build: {lib: {entry: './src/main.js',name: 'vue3Module',formats: ['es']}}
}

Web Workers 优化

// worker-loader.js
export default function (config) {return {name: 'worker-loader',transform(code, id) {if (id.includes('?worker')) {return `export default function WorkerWrapper() {return new Worker(URL.createObjectURL(new Blob([${JSON.stringify(code)}], { type: 'application/javascript' }))}`}}}
}

打包压缩配置

 plugins: [viteCompression({// gzip静态资源压缩配置verbose: true, // 是否在控制台输出压缩结果disable: false, // 是否禁用压缩threshold: 10240, // 启用压缩的文件大小限制algorithm: 'gzip', // 采用的压缩算法ext: '.gz' // 生成的压缩包后缀})],

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词