返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue一个动态添加background-image的实现
  • 524
分享到

Vue一个动态添加background-image的实现

Vue动态添加Vuebackground-imageVue添加background-image 2023-03-11 17:03:56 524人浏览 薄情痞子
摘要

目录Vue一个动态添加background-imageVue踩坑background-image路径结合实际情况,处理方法如下扩展:图片格式(base64)总结Vue一个动态添加ba

Vue一个动态添加background-image

一开始不知道该怎么弄,后面查了下,应该这样使用

 <div @click="dialogVisible = true" :style=" 
     {backgroundImage:'url('+personalData.avatar+')'}">    
      
                    <div>
                        <!-- <div></div> -->
                        <p>修改头像</p>
                    </div>
 </div>

Vue踩坑background-image路径

前端开发中,background-image属性非常常见,有很多时候需要使用内联样式来绑定此属性,但是在vue项目中,如果如下面代码填写路径会找不到图片

  • 项目中图片都放在src/img文件夹,img和background-image引用都用相对路径,即../../../这种形式。
  • 在项目打包build设置路径assetsPublicPath:'./',然后哪些没有转成base64的背景图都失效了。
<script type="text/javascript">
	import TemplateNav from './TemplateNav'
 
	export default {
		name: 'FooterNav',
		components: {
			'TemplateNav': TemplateNav
		},
		data() {
			return {
				//使用相对路径会找不到图片
				shouye:'url(../../assets/images/shouye/index2x.png)',
				fenlei:'url(../../assets/images/shouye/fenlei2x.png)',
				search:'url(../../assets/images/shouye/search2x.png)',
				shopcart:'url(../../assets/images/shouye/Gouwuche2x.png)',
				mine:'url(../../assets/images/shouye/I2x.png)'
			}
		},
		props: {
			num: {
				default: '0'
			}
		},
	}
</script>

报错如下:404(Not Found)

 正确的路径应该如下面这样

data() {
	return {
		shouye:'url(' + require('../../assets/images/shouye/index2x.png') + ')',
		fenlei:'url(' + require('../../assets/images/shouye/fenlei2x.png') + ')',
		search:'url(' + require('../../assets/images/shouye/search2x.png') + ')',
		shopcart:'url(' + require('../../assets/images/shouye/gouwuche2x.png') + ')',
		mine:'url(' + require('../../assets/images/shouye/I2x.png') + ')'
	}
},

使用require()方法,require()是node.js方法。

结合实际情况,处理方法如下

img标签:

<img :src="require('../../../assets/images/icons/icon-add-pc.svg')">

背景图:

<div :style="{backgroundImage:'url('+require('../../../assets/images/icon/icon-add-pc.svg')+')'}"></div>
 
//i标签
<i :style="{backgroundImage:'url('+require('../../assets/home/ic-0-01.svg')+')'}"></i>

扩展:图片格式(base64)

图片的base64编码就是可以将一张图片数据编码成一串字符串,使用该字符串代替图像地址url。

使用base64图片的优点:

  • 减少Http请求次数
  • 采用base64的图片随着页面一起下载,因此不会存在跨域请求的问题
  • 没有图片更新要上传图片,因此不会造成清理图片缓存的问题。

使用base64图片的缺点:

  • 增加CSS文件的大小,比http请求大30%左右
  • 浏览器兼容性,支持ie10及以上
  • 解析css的时间增长

base64图片与csssprites技术

精灵图技术就是将图片合成一个大的图片,将多次图片请求合成一张大的请求,以此来达到减少http请求的次数。

对于base64图片常见误区

base64虽然有优点,但是其缺点也很明显,在使用上存在一些明显的缺陷

  • 使用base64不代表性能优化,使用base64减少了http请求,但是增加了css文件的体积,css文件体积增大意味着CPR的阻塞
  • CPR(Critical Rendering Path,关键渲染路径):当浏览器从服务器接收到一个html页面的请求时,到屏幕上渲染出来要经过很多个步骤。浏览器完成这一系列的运行,或者说渲染出来我们常常称之为“关键渲染路径”。
  • 图片不会导致关键路径的阻塞,而转换为base64后大大增加了css文件的体积,css文件的体积直接影响渲染,导致空白屏幕时间增长,html和css会阻塞渲染,而图片不会阻塞渲染。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Vue一个动态添加background-image的实现

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

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

猜你喜欢
  • Vue一个动态添加background-image的实现
    目录Vue一个动态添加background-imageVue踩坑background-image路径结合实际情况,处理方法如下扩展:图片格式(base64)总结Vue一个动态添加ba...
    99+
    2023-03-11
    Vue动态添加 Vue background-image Vue添加background-image
  • Vue一个动态添加background-image的方法是什么
    这篇文章主要介绍了Vue一个动态添加background-image的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue一个动态添加background-image的方法是什么文章都会有所收获,下面...
    99+
    2023-07-05
  • 怎么用一个DIV画图通过background-image叠加实现
    小编给大家分享一下怎么用一个DIV画图通过background-image叠加实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!...
    99+
    2024-04-02
  • Vue动态添加属性到data的实现
    目录一、场景例子二、原理分析三、解决方案一、场景例子 <body> <div id="app"> <p v-for="(valu...
    99+
    2022-11-13
    Vue 动态添加属性 Vue 添加属性
  • vue 动态添加el-input的实现逻辑
    目录一、效果图二、实现逻辑一、效果图 二、实现逻辑 将需要动态添加的表单项项的绑定值存为一个数组以循环的方式展示form表单点击`+`按钮触发事件,向数组中新加一个item点击`-...
    99+
    2024-04-02
  • vue怎么实现动态添加el-input
    本文小编为大家详细介绍“vue怎么实现动态添加el-input”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue怎么实现动态添加el-input”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、效果图二、实现...
    99+
    2023-07-02
  • vue+elementui实现动态添加行/可编辑的table
    本文实例为大家分享了vue+elementui实现动态添加行、可编辑的table的具体代码,供大家参考,具体内容如下 HTMl代码块: <el-col :span="24"&g...
    99+
    2024-04-02
  • Vue+Element一步步实现动态添加Input_输入框案例
    目录输入式动态添加单选式动态添加组合式动态添加组合式动态添加(回传名称)单选、多选组合式数据回显完整示例总结单选切换多选(补充)下拉框渲染卡顿问题(补充)双循环遍历优化输入式动态添加...
    99+
    2024-04-02
  • vue动态添加表单validateField验证功能实现
    vue动态添加表单validateField验证,代码如下所示: <template> <el-form ref="form" :model="form" ...
    99+
    2023-05-14
    vue动态添加表单 vue  validateField验证
  • 如何在Android中动态添加一个view
    如何在Android中动态添加一个view?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。<xml version="1.0" ...
    99+
    2023-05-30
    android view
  • vue实现动态列表尾部添加数据执行动画
    目录动态列表尾部添加数据执行动画先上动画动态数据使用wowjs显示动画1.通过npm安装2.在main.js中引入animate.css动态列表尾部添加数据执行动画 先上动画 动态...
    99+
    2024-04-02
  • AngularJS怎么实现动态添加Option
    这篇文章主要为大家展示了“AngularJS怎么实现动态添加Option”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“AngularJS怎么实现动态添加Opti...
    99+
    2024-04-02
  • vue动态添加表单validateField验证功能如何实现
    今天小编给大家分享一下vue动态添加表单validateField验证功能如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2023-07-05
  • jQuery实现动态添加标签事件
    本文实例为大家分享了jQuery实现动态添加标签事件的具体代码,供大家参考,具体内容如下 代码: <body> <table id="tableID"...
    99+
    2024-04-02
  • vue怎么实现动态列表尾部添加数据执行动画
    这篇文章主要介绍“vue怎么实现动态列表尾部添加数据执行动画”,在日常操作中,相信很多人在vue怎么实现动态列表尾部添加数据执行动画问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue怎么实现动态列表尾部添加...
    99+
    2023-06-29
  • 动态添加LinearLayout的高度实例
    实例如下:WindowManager wm = (WindowManager) getContext() .getSystemService(Context.WINDOW_SERVICE); int width = wm...
    99+
    2023-05-31
    动态 添加 linearlayout
  • Unity 实现给物体动态添加事件
    介绍一个方法给物体动态的添加事件(点击 拖拽等) using System.Events; using System.EventSystems; //_go is the gam...
    99+
    2024-04-02
  • Spring动态添加定时任务的实现思路
    一、背景 在工作中,有些时候我们有些定时任务的执行可能是需要动态修改的,比如: 生成报表,有些项目配置每天的8点生成,有些项目配置每天的10点生成,像这种动态的任务执行时间,在不考虑...
    99+
    2024-04-02
  • Spring动态添加定时任务的实现方法
    本篇内容主要讲解“Spring动态添加定时任务的实现方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring动态添加定时任务的实现方法”吧!一、背景在工作中,有些时候我们有些定时任务的执行...
    99+
    2023-06-20
  • vueel-table动态添加行与删除行的实现
    目录el-table 动态添加行与删除行el-table 合计行放在首行首先在el-table ,添加属性2.定义合计行的位置和样式3. 合计行的数据el-table 动态添加行与删...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作