目录Vue一个动态添加background-imageVue踩坑background-image路径结合实际情况,处理方法如下扩展:图片格式(base64)总结Vue一个动态添加ba
一开始不知道该怎么弄,后面查了下,应该这样使用
<div @click="dialogVisible = true" :style="
{backgroundImage:'url('+personalData.avatar+')'}">
<div>
<!-- <div></div> -->
<p>修改头像</p>
</div>
</div>
在前端开发中,background-image属性非常常见,有很多时候需要使用内联样式来绑定此属性,但是在vue项目中,如果如下面代码填写路径会找不到图片
<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编码就是可以将一张图片数据编码成一串字符串,使用该字符串代替图像地址url。
使用base64图片的优点:
使用base64图片的缺点:
base64图片与csssprites技术
精灵图技术就是将图片合成一个大的图片,将多次图片请求合成一张大的请求,以此来达到减少http请求的次数。
对于base64图片常见误区
base64虽然有优点,但是其缺点也很明显,在使用上存在一些明显的缺陷
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
--结束END--
本文标题: Vue一个动态添加background-image的实现
本文链接: https://lsjlt.com/news/199379.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-01-12
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0