Vue如何由本地js中存放的url地址获取图片
作者:默默的小跟班
这篇文章主要介绍了Vue如何由本地js中存放的url地址获取图片问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
vue由本地js中存放的url地址获取图片
对象必须放在js中(而不是json里面,json没有require)。
如果是在json中,需要采用其他方式去获取
注意:url地址必须用这种形式,有require
data.js
export const recommends = [ { "pic": require('./1.png'), "name": "adidas 阿迪达斯 训练 男子", "price": "335", "num": "1" }, ]
index.vue
import { recommends } from './img/recommend/recommend';
先引入
this.recommends = recommends;
然后要么在data里return这个对象,要么就采用这种赋值方式。
赋值方式可以省去多余的get/set方法
<p class="recommend-pic"><img class="recommend-img" :src="item.pic"></p> <p class="recommend-name">{{item.name}}</p>
读取对象数据,两个注意点:
- src前面 : (v-bind绑定)。
- 直接获取的参数需要两个花括号 {{ }}
Vue获取html字符串中的图片地址
1.正则表达式
const RegEx = /(?<=(img src="))[^"]*?(?=")/gims
2.获取html字符串中所有img标签图片地址(Array)
const htmlStr = '<p><img src="1.png" /><img src="2.png" /><img src="3.png" /><img src="4.png" /></p>' const images = text.match(RegEx)
3.Vue过滤器中加入获取img地址方法
如:getImgUrl
export default { filters: { getImgUrl(html) { const RegEx = /(?<=(img src="))[^"]*?(?=")/gims if(html && html.match(RegEx) && html.match(RegEx).length > 0) { return html.match(RegEx)[0] } return require('默认图片地址') }, // 过滤HTML文本中图片地址为本地磁盘地址的图片 getImgUrl2(html) { const RegEx = /(?<=(img src="))[^"]*?(?=")/gims if(html && html.match(RegEx) && html.match(RegEx).length > 0 && html.match(RegEx)[0].indexOf('file:///') === -1) { return html.match(RegEx)[0] } return require('默认图片地址') } } }
4、使用
<img :src="item.content | getImgUrl" alt="">
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。