广告
返回顶部
首页 > 资讯 > 精选 >Vue如何替换本地图片
  • 289
分享到

Vue如何替换本地图片

2023-07-05 01:07:10 289人浏览 安东尼
摘要

这篇文章主要介绍“Vue如何替换本地图片”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue如何替换本地图片”文章能帮助大家解决问题。Vue替换本地图片的方法:1、通过“”将图片转为base64格式

这篇文章主要介绍“Vue如何替换本地图片”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue如何替换本地图片”文章能帮助大家解决问题。

Vue替换本地图片的方法:1、通过“”将图片转为base64格式;2、使用import引入图片;3、使用require动态加载;4、引入“publicPath”并且将其拼接在路径中,实现引入路径的动态变动即可。

vue动态加载本地图片

今天遇到一个在vue文件中引入本地图片的问题,于是有了这篇文章。

通常,我们的一个img标签在html中是这么写的:

<img src="../images/demo.png">

这种写法只能引用相对路径下的图片。不能使用绝对路径。使用绝对路径的话,这类资源将会直接被拷贝,而不会经过 webpack 的处理。

如果src是变量的话,我们一般会在data中定一个变量src进行动态绑定。

<img :src="src">//data中定义变量src
data() {
 return {
   src: '../images/demo.png'
 }
}

然而这时候,会发现这个时候图片并没有被加载出来,图片没有显示出来,通过查看发现这张图片的地址显示 ../images/demo.png ,也就是说通过v-bind形式绑定的相对路径不会被WEBpack的file-loader处理,只会做简单的文本替换。

那怎么办呢?

解决方法

1、将图片转**base64**格式

<img src="data:image/png;base64,iVBYKIGloxxxxxxxxxxxxxxxxxxx...">

一般图片比较小的可以这么做,比如图标icon等,大小一般在10KB以内的。

2、使用**import**引入图片

<img :src="src">//使用import引入
import img from '../images/demo.png'

//data中定义变量src
data() {
 return {
   src: img
 }
}

3、使用**require**动态加载

<img :src="src">//data中定义变量src
data() {
 return {
   src: require('../images/demo.png')
 }
}

4、引入**publicPath**并且将其拼接在路径中,实现引入路径的动态变动

<img :src="publicPath + 'images/demo.jpg'" alt=""> // √
// 编译后:<img src="/foo/images/demo.jpg" alt=""><script>export default:{
   data(){
       return {
         publicPath: process.env.BASE_URL,
       }
   },}</script>

vue.config.js中配置publicPath路径:

//vue.config.jsmodule.exports = {
   publicPath:'/foo/',
   ...}

结论

静态资源可以通过两种方式进行处理:

  • javascript 被导入或在 template/CSS 中通过相对路径被引用。这类引用会被 webpack 处理。

  • 放置在 public 目录下或通过绝对路径被引用。这类资源将会直接被拷贝,而不会经过 webpack 的处理。

原理

从相对路径导入

当你在 JavaScript、CSS 或 *.vue 文件中使用相对路径 (必须以 . 开头) 引用一个静态资源时,该资源将会被包含进入 webpack 的依赖图中。

在其编译过程中,所有诸如 <img src="...">background: url(...) 和 CSS @import 的资源 URL 都会被解析为一个模块依赖

绝对路径引入时,路径读取的是public文件夹中的资源,任何放置在 public 文件夹的静态资源都会被简单的复制到编译后的目录中,而不经过 webpack特殊处理。

当你的应用被部署在一个域名的根路径上时,比如Http://www.abc.com/,此时这种引入方式可以正常显示但是如果你的应用没有部署在域名的根部,那么你需要为你的 URL 配置 publicPath 前缀,publicPath 是部署应用包时的基本 URL,需要在 vue.config.js 中进行配置。

扩展

关于vue file-loader vs url-loader

如果我们希望在页面引入图片(包括img的src和background的url)。当我们基于webpack进行开发时,引入图片会遇到一些问题。

其中一个就是引用路径的问题。拿background样式用url引入背景图来说,我们都知道,webpack最终会将各个模块打包成一个文件,因此我们样式中的url路径是相对入口html页面的,而不是相对于原始css文件所在的路径的。这就会导致图片引入失败。这个问题是用file-loader解决的,file-loader可以解析项目中的url引入(不仅限于css),根据我们的配置,将图片拷贝到相应的路径,再根据我们的配置,修改打包后文件引用路径,使之指向正确的文件。
另外,如果图片较多,会发很多http请求,会降低页面性能。这个问题可以通过url-loader解决。url-loader会将引入的图片编码,生成dataURl。相当于把图片数据翻译成一串字符。再把这串字符打包到文件中,最终只需要引入这个文件就能访问图片了。当然,如果图片较大,编码会消耗性能。因此url-loader提供了一个limit参数,小于limit字节的文件会被转为DataURl,大于limit的还会使用file-loader进行copy。

url-loader和file-loader是什么关系呢?简答地说,url-loader封装了file-loader。url-loader不依赖于file-loader,即使用url-loader时,只需要安装url-loader即可,不需要安装file-loader,因为url-loader内置了file-loader。通过上面的介绍,我们可以看到,url-loader工作分两种情况:1.文件大小小于limit参数,url-loader将会把文件转为DataURL;2.文件大小大于limit,url-loader会调用file-loader进行处理,参数也会直接传给file-loader。因此我们只需要安装url-loader即可。

关于background url引入图片时

按照上面理论,如果我采用相对路径的方式引入图片的话,webpack会对其require处理。

background: url('./iphonexs.png') 0 0 no-repeat;

实际上确实如此,我看到页面的背景变成:

background: url(/resources/dist/images/iphonexs.a25bee7.png) 0 0 no-repeat;

这是根据url-loader的配置处理的结果。

或者采用动态style的方式:

<div 
 :style="{'background': 'url(' + require('./iphonexs.png') + ') 0 0 no-repeat'}"></div>

关于“Vue如何替换本地图片”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Vue如何替换本地图片

本文链接: https://www.lsjlt.com/news/348825.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue如何替换本地图片
    这篇文章主要介绍“Vue如何替换本地图片”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue如何替换本地图片”文章能帮助大家解决问题。Vue替换本地图片的方法:1、通过“”将图片转为base64格式...
    99+
    2023-07-05
  • jquery如何替换图片路径
    本文小编为大家详细介绍“jquery如何替换图片路径”,内容详细,步骤清晰,细节处理妥当,希望这篇“jquery如何替换图片路径”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
    99+
    2022-10-19
  • jquery如何替换元素图片
    使用jquery替换元素图片的方法:1.新建html项目;引入jquery;2.创建img标签,设置图片地址;3.在标签中设置id属性;4.新建button按钮,绑定onclick事件;5.通过id获取图片,并使用attr()方法替换图片;...
    99+
    2022-10-10
  • phpcms将下载地址替换为图片显示
    关键字描述:图片 显示 地址 下载 " < downurl > width 经常有用户提出说phpcms系统下载内容页的下载地址显得不是很明显,有用户都找不见,所以想用个图片进行替换,但怎么把下载的地址连到图片上现...
    99+
    2022-06-12
    图片 显示 地址 下载 " < downurl width > name
  • Java如何实现替换Word中文本和图片功能
    这篇文章主要讲解了“Java如何实现替换Word中文本和图片功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java如何实现替换Word中文本和图片功能”吧!前言Word中的替换功能以查找...
    99+
    2023-06-30
  • Java实现替换Word中文本和图片功能
    目录前言1.指定字符串内容替换文本2.获取文档内容替换文本3.图片替换文本4.图片替换图片前言 Word中的替换功能以查找指定文本然后替换为新的文本,可单个替换或全部替换。以下将要介...
    99+
    2022-11-13
  • vue图片加载失败时用默认图片替换的示例分析
    这篇文章主要为大家展示了“vue图片加载失败时用默认图片替换的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue图片加载失败时用默认图片替换的示例分析...
    99+
    2022-10-19
  • Java怎么用文本、图片、表格替换Word书签
    这篇文章给大家分享的是有关Java怎么用文本、图片、表格替换Word书签的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用工具:Free Spire.Doc for Java (免费版)Jar文件获取及导入:方法...
    99+
    2023-06-02
  • jQuery如何实现点击替换图片特效
    这篇文章将为大家详细讲解有关jQuery如何实现点击替换图片特效,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   1,起因   最近在工作中要实现自定义式的radi...
    99+
    2022-10-19
  • 如何在PHP中实现视频图片替换
    随着互联网技术的不断发展,多媒体内容已经成为了互联网中不可或缺的一部分。在现如今的互联网世界中,视频内容和图片内容已经成为了网站和应用中最为重要的展示方式,这也就使得图片和视频的处理成为了开发者们必须要面对的问题。而在这方面,PHP作为一种...
    99+
    2023-05-14
  • 如何删除本地图片javascript
    当在网站或应用程序中使用本地图片时,我们有时需要删除某些图片。在JavaScript中,有几种方法可以实现删除本地图片。本文将详细介绍如何使用JavaScript删除本地图片。方法1:使用URL.revokeObjectURL()在Java...
    99+
    2023-05-17
  • HTML如何加载本地图片
    这篇文章将为大家详细讲解有关HTML如何加载本地图片,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。<!DOCTYPE html><html><...
    99+
    2022-10-19
  • css如何引入本地图片
    这篇“css如何引入本地图片”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“css如何引入本地图片”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们一起来看看具...
    99+
    2023-06-06
  • vue如何替换空格
    这篇“vue如何替换空格”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue如何替换空格”文章吧。vue实现替换空格的方法:...
    99+
    2023-07-04
  • vue中本地静态图片路径怎么写
    这篇文章将为大家详细讲解有关vue中本地静态图片路径怎么写,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。这里写图片描述 需求:如何components里面的index.v...
    99+
    2022-10-19
  • vue图片转base64本地路径跨域方式
    目录图片转base64本地路径跨域问题描述解决方案图片转成base64跨域等安全限制及解决图片转base64本地路径跨域 问题描述 代码 getUrlBase64(url, ext...
    99+
    2022-11-13
  • vue如何将html内容转为图片并下载到本地
    目录将html内容转为图片并下载到本地vue将html页面转为图片并且下载该图片总结将html内容转为图片并下载到本地 需求:将自己写的html内容转化为图片并可以下载到本地 1....
    99+
    2023-01-16
    vue html内容 html内容转图片 图片下载到本地
  • 如何在uniapp中删除本地图片
    随着移动应用的不断发展,用户上传和保存本地图片的需求越来越大,而uniapp框架作为一个跨平台的开发框架,也越来越受到开发者的喜爱。在uniapp中,删除本地图片是一个常见的操作,但是对于一些新手来说可能会有一些困惑。本文将从二个方面来介绍...
    99+
    2023-05-14
  • vue动态加载本地图片的处理方法
    发现问题 今天遇到一个在vue文件中引入本地图片的问题,于是有了这篇文章。 通常,我们的一个img标签在html中是这么写的: <img src="../imag...
    99+
    2022-11-12
  • mac网页图片如何保存到本地
    要将Mac网页上的图片保存到本地,可以按照以下步骤进行操作:1. 打开Safari浏览器(或其他浏览器)并访问要保存图片的网页。2....
    99+
    2023-10-09
    mac
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作