vue3中实现图片压缩的示例代码

 更新时间:2024年02月03日 16:15:24   作者:开心点啦.  
图片压缩是一种比较便捷的压缩方式,本文主要介绍了vue3中实现图片压缩的示例代码,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧

首先,为什么需要进行图片压缩:

  • 减少页面加载时间:因为图片是页面中常见的资源之一,较大的图片会增加页面的加载时间,影响用户体验,压缩图片可以减小图片的文件大小,提升页面加载速度。
  • 节省网络流量:在移动设备或移动网络下,加载大型图片可能会消耗大量的网络流量,导致用户的流量费用增加,压缩图片可以降低文件大小,节省用户的流量费用。
  • 节约服务器带宽:压缩图片可以减少服务器带宽流量,当服务器响应客户端请求时,如果返回的是压缩过的图片,那么所需的传输时间和带宽流量,都会比原始图片少,这是因为压缩图片可以减小文件大小,来减少所需的传输时间和带宽流量,在一些大量传输图片的场景下,压缩图片可以减少服务器的带宽流量,从而减低服务器成本,并提升用户体验。
  • 减少网络拥堵:在网络拥堵的情况下,下载大型图片可能会占用较多的带宽资源,从而导致其他用户的访问速度变慢,压缩图片可以减小图片的文件大小,减少网络拥堵的情况。
  • 减少存储空间:对于需要大量存储图片的应用程序,如图片分享网站,在线相册等。压缩图片可以减少存储空间的占用,降低成本。
  • 保护隐私信息:一些照片中可能包含了一些隐私信息,如地理位置,时间,人脸等。如果不进行压缩,这些信息可能会被黑客或者不法分子利用,压缩图片可以消除或者减少这些信息,保护隐私安全。
  • 增加搜索引擎排名:搜索引擎越来越注重网站的速度和性能。压缩图片可以加快页面的加载速度,提高用户体验。从而增加搜索引擎的排名。

在理解了项目中为什么要使用图片压缩后,可以在vite环境中vue项目中,先进行不同类型图片的引入与使用操作。

第一步:在src的目录中assets文件夹下放置一些不同格式的图片(.jpg,.png,.webp,.svg)

这些文件有大有小,有的有86.9KB,有的有540KB

第二步:引入图片

<template>
    <img src="./assets/pig.webp" />
    <img src="./assets/cat.jpg" />
    <img src="./assets/cat.png" />
    <img src="./assets/dog.png" />
    <img src="./assets/vue.svg" />
</template>

运行

npm run dev

第三步:打开调试工具Network面板

勾选Disable cache选项进行无缓存的页面请求测试,以下则可以清楚的看到各个文件类型与尺寸的大小。

那么是否可以对assets中的图片资源进行自动的压缩处理呢???? 

第一步:在vue项目中安装以下插件

npm i vite-plugin-image-optimizer -D

第二步:在vite.config.ts中引入模块并配置插件使用

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import { ViteImageOptimizer } from "vite-plugin-image-optimizer";

export default defineConfig({
    plugins:[
        vue(),
        ViteImageOptimizer()
    ],
});

vite-plugin-image-optimizer不支持开发环境图片压缩,需要利用npm run build进行生产环境项目打包。

运行完毕以后,在终端中会显示图片压缩的报表结果,清晰的可以查看到,如果原图可以进行压缩,包括压缩后的文件大小尺寸都有所显示。如果插件尝试对原图压缩,但压缩后的文件反而比原图大的话,那么将会采用skip的跳过机制,保留原图而不使用压缩操作。

如果觉得vite-plugin-image-optimizer默认配置不能够满足项目对图片优化的需求,则可以考虑进行自定义属性的设置。

比如:

对jpg进行压缩,画质保留至90%。对png进行压缩,画质保留至100%。

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import { ViteImageOptimizer } from "vite-plugin-image-optimizer";

export default defineConfig({
    plugins:[
        vue(),
        ViteImageOptimizer({
            jpg:{
                quality:90,
            },
            png:{
                quality:100,
            }
        })
    ],
});

执行npm run build打包命令以后则会看到与之前默认配置不同的压缩结果。

项目在打包以后会产生dist目录,确保电脑环境中有类似serve这样的本地服务开启工具以后,可以尝试在项目根目录运行serve ./dist

如果没有serve则可以进行下载:

npm install serve -g  全局安装

那么以上则是压缩前和压缩后图片大小的对比,那么在产品项目中的图片已经变得精简太多。 

到此这篇关于vue3中实现图片压缩的示例代码的文章就介绍到这了,更多相关vue3 图片压缩内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何启动一个Vue.js项目

    如何启动一个Vue.js项目

    这篇文章主要介绍了如何启动一个Vue.js项目,对Vue.js感兴趣的同学,可以参考下
    2021-04-04
  • Vue3+Vite+ElementPlus管理系统常见问题

    Vue3+Vite+ElementPlus管理系统常见问题

    本文记录了使用Vue3+Vite+ElementPlus从0开始搭建一个前端工程会面临的常见问题,没有技术深度,但全都是解决实际问题的干货,可以当作是问题手册以备后用,感兴趣的朋友参考下
    2023-12-12
  • vue2中vue-router引入使用详解

    vue2中vue-router引入使用详解

    Vue Router 是 Vue 的官方路由,它与 Vue.js 核心深度集成,让用 Vue.js 构建单页应用变得轻而易举,下面就跟随小编一起学习一下vue-router的具体用法吧
    2023-12-12
  • VNode虚拟节点实例简析

    VNode虚拟节点实例简析

    这篇文章主要介绍了VNode虚拟节点,结合实例形式分析了VNode虚拟节点的基本功能、原理与实现方法,需要的朋友可以参考下
    2023-06-06
  • vite获取所有环境变量(env)的实现方法

    vite获取所有环境变量(env)的实现方法

    本文主要介绍了vite获取所有环境变量(env)的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-06-06
  • Vue3中使用Pinia修改State的五种方式

    Vue3中使用Pinia修改State的五种方式

    这篇文章主要介绍了Vue3中使用Pinia修改State的五种方式,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2023-11-11
  • Vue中const、var、let的核心区别及最佳实践

    Vue中const、var、let的核心区别及最佳实践

    文章主要讲述了JavaScript中var、let和const三种声明变量方式的区别与适用场景,强调了在实际开发中应尽量避免使用var,优先使用const声明常量,用let声明需要修改的变量,特别强调了在Vue项目中const是最常用的声明方式,需要的朋友可以参考下
    2026-05-05
  • 前端项目常用的三个Skills总结(Vue、React与UI核心Skills)

    前端项目常用的三个Skills总结(Vue、React与UI核心Skills)

    最近一种新概念在前端社区中受到关注,Skills这个概念很快被React和Vue社区接受,并引发了关于AI编程方式的新思考,这篇文章主要介绍了前端项目常用的三个Skills的相关资料,分别是Vue、React与UI核心Skills,需要的朋友可以参考下
    2026-05-05
  • vue2.x el-table二次封装实现编辑修改

    vue2.x el-table二次封装实现编辑修改

    本文主要介绍了vue2.x el-table二次封装实现编辑修改,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Vue使用moment将GMT时间转换为北京时间

    Vue使用moment将GMT时间转换为北京时间

    GMT(Greenwich Mean Time)和UTC(Coordinated Universal Time)是两个时间标准,它们在许多方面非常相似,但也有一些微小的差异,本文给大家详细介绍了Vue使用moment将GMT时间转换为北京时间,需要的朋友可以参考下
    2023-12-12

最新评论