关于Vue中页面成功渲染数据undefined的问题

7 篇文章 0 订阅
2 篇文章 0 订阅

undefined问题

其实就是数据还没拿到就渲染了一次造成的,解决的办法也有很多,个人觉得不影响使用,但老有人问为啥会一开始显示undefined,也懒得解释了,改吧。。

方法一

安装并使用axios

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么 加载中的图片放在这里即可
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });

方法二

用watch监听数据,让数据加载完成后再显示dom,数据获取期间显示加载中……

<template>
	<view style="background-color: #ffe1cd;height: 100vh;background: url(/static/my_bg.png);">
		<view v-if="showdom">
			<view class="topbtn">
				<view class="showcur">
					{{curnum}} / {{arrlength}}
				</view>
				<button class="share" type="default" open-type="share">分享</button>
			</view>
			<view class="miyu-style">
				<view class="title">
					{{datas.title}}
					<view class="midi" v-show="showres">
						答案:{{datas.content}}
					</view>
				</view>
				<view class="footbtn">
					<view class="content" @click="showmidi">
						查看答案
					</view>
					<view class="next" @click="predata(datas._id)">
						下一个
					</view>
				</view>
			</view>
		</view>
		<view v-else>
			数据加载中……
		</view>
	</view>
</template>

//js部分
watch:{
	datas:function(val,oldval){
			if(val!==oldval){
				this.showres = false
				this.showdom = true
			}
		}
	},
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Vue,您可以在模板使用 v-for 指令遍历数组,并使用对象的 id 属性动态绑定图片的 URL。 示例: ``` <template> <div> <img v-for="item in items" :key="item.id" :src="'path/to/img/' + item.id + '.jpg'" /> </div> </template> <script> export default { data() { return { items: [ { id: 1 }, { id: 2 }, { id: 3 }, // ... ], }; }, }; </script> ``` 在上面的代码,我们将遍历 items 数组并为每个元素渲染一个图像。图像的 URL 将通过拼接字符串计算,其包含了对象的 id 属性。 ### 回答2: 在Vue,我们可以通过使用v-for指令来遍历数组,并根据数组的id来渲染对应的图片。 首先,我们需要在Vue实例的data选项定义一个包含多个对象的数组,其每个对象都包含一个id和一个imgUrl属性,分别表示图片的唯一标识和图片的地址。例如: ```javascript data: { images: [ { id: 1, imgUrl: 'img1.jpg' }, { id: 2, imgUrl: 'img2.jpg' }, { id: 3, imgUrl: 'img3.jpg' } ] } ``` 接下来,在模板使用v-for指令进行渲染,将每个对象的imgUrl属性绑定到img标签的src属性上,并使用对象的id属性作为key属性,以便Vue可以正确地追踪元素的身份。例如: ```html <div v-for="image in images" :key="image.id"> <img :src="image.imgUrl" alt="image"> </div> ``` 通过使用v-for指令和绑定对象的id和imgUrl属性,Vue会自动根据数组数据渲染对应的图片。 注意:为了使上述代码能够正常工作,你需要将实际的图片地址替换为对应图片的地址,并确保路径正确。 ### 回答3: 在Vue,我们可以使用v-for指令来遍历一个数组,并根据数组的id来渲染对应的图片。 首先,我们需要在Vue的data选项定义一个数组,该数组包含了多个对象,每个对象都有一个id字段和一个img字段,示例代码如下: ```javascript data() { return { images: [ { id: 1, img: 'image1.jpg' }, { id: 2, img: 'image2.jpg' }, { id: 3, img: 'image3.jpg' }, // 其他图片对象 ] } } ``` 然后,我们可以在模板使用v-for指令来遍历images数组,并通过v-bind指令将id作为key绑定到遍历的元素上,示例代码如下: ```html <template> <div> <div v-for="image in images" :key="image.id"> <img :src="image.img" alt="图片"> </div> </div> </template> ``` 在上述代码,v-for指令会遍历images数组,每次遍历会将当前元素赋值给image变量,然后使用v-bind指令将image.id作为key绑定到遍历的div元素上,这样Vue就能够正确地跟踪每个元素的身份,并在更新数组时进行优化。同时,通过使用:image.img绑定到img标签的src属性上,我们可以根据数组每个对象的img字段的值来渲染对应的图片。 这样,我们就可以根据数组的id渲染对应的图片了。当数组的id发生变化时,Vue会自动更新DOM的图片元素和相关属性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值