【vant】爬坑引用本地图片

【vant】爬坑引用本地图片

最近因为项目需求要利用vant引用本地图片,但是我发现,我死活引用不上本地图片,老是找不到图片,试了n多方法,我真的是欲哭无泪啊。然后我又查了很多文档,发现还是木有用。简直了,一遇到调用图片的,我真的是瑟瑟发抖,害怕。
话不多说,进入正题。
一开始我是这么写的,对于路径问题,嗯,遵循不报找不到的错就好,至于原理,我还真没深究过。

<div class="boximg">
	<img src="../assets/hahaha.png">
</div>
//反正这么写PC端出来的好好的,移动端就是不出来

我又查了vant官方帮助文档,官方文档对引用本地图片的常见问题的描述。
在这里插入图片描述
在这里插入图片描述
最后一顿操作猛如虎,终于整出来。

<van-image :src="require('../../assets/hhh.png')"/>
//再对组件进行引用,图片终于出来了。
//但是莫要忘了引用,忘了肯定也显示不出来
import {Image as VanImage} from "vant";
components: {
		[VanImage.name]: VanImage,
    },
//至于为什么是vanImage我也没有深究,图片能出来我已经很感动了

引用多个图片,并将信息存放在数组中。样式可以自己设置。

<div>
	<van-row>
	    <van-col span="6" v-for="(image, index) in imageList" :key="index" > 
			<div class="imgbox">
				<van-image :src="image.img" fit="cover"/>
			</div>
			<span>{{image.title}}</span>
		</van-col>
	</van-row>
</div>
//在data中定义数组
imageList: [
    {img:require('../../assets/tupian1.png'),title:"图片1"},
    {img:require('../../assets/tupian2.png'),title:"图片2"},
    {img:require('../../assets/tupian3.png'),title:"图片3"},
    {img:require('../../assets/tupian4.png'),title:"图片4"},
],

对于路径问题

路径主要分为绝对路径和相对路径。

  • 绝对路径:你的主页上的文件或目录在硬盘上真正的路径。简单来说就是完整的描述文件位置的路径。
  • 相对路径:由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。简单来说就是相对与某个基准目录的路径。

相对路径的写法
` ./:代表目前所在的目录。
…/:代表上一层目录。
以/开头:代表根目录

嗯,文章就到这了。对于相对路径的写法,我感觉我还要花不少时间去理解。

### vant移动端上传本地图片并展示 在使用 Vant 组件库开发移动端应用时,如果遇到本地图片无法正常显示的问题,可以通过特定的方式解决。对于静态本地图片的加载,在模板中直接使用 `require` 函数来引入路径是一个有效的解决方案[^1]。 当涉及到用户通过界面交互方式上传本地图片,并即时预览所选文件的情况,则需采用不同的策略。下面提供了一种基于 Vue 和 Vant 的实现方案: #### HTML结构部分 定义了一个用于触发文件选择器按钮以及放置已选取图片位置的空间。 ```html <van-uploader v-model="fileList" multiple :max-count="1" class="image" :after-read="handleAfterRead"> <van-button type="primary">选择图片</van-button> </van-uploader> <!-- 预览区域 --> <img v-if="previewUrl" :src="previewUrl" alt="" style="width: 100px;height:auto;"> ``` #### JavaScript逻辑处理 这里实现了两个主要的功能:一是监听用户的读取操作;二是更新视图中的图片链接以便于实时查看效果。 ```javascript export default { data() { return { fileList: [], // 存储上传后的文件列表 previewUrl: '' // 当前正在预览的图片URL }; }, methods: { handleAfterRead(file) { this.fileList.push(file); const reader = new FileReader(); reader.onloadend = () => { this.previewUrl = reader.result; }; if (file instanceof Blob) { reader.readAsDataURL(file); } else { this.previewUrl = file.content; } } } } ``` 此方法允许开发者创建一个简单的图像上传接口,不仅支持单张照片的选择与展示,还能够轻松集成到更复杂的应用场景之中。值得注意的是,上述代码片段假设读者已经熟悉如何安装配置Vue CLI项目环境及其依赖项如Vant UI库等前置条件[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值