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

7 篇文章 0 订阅
2 篇文章 0 订阅
本文探讨了在前端应用中遇到的初始化数据显示undefined的问题及其解决方案。两种方法被提出:一是使用axios请求拦截器展示加载中状态,二是通过Vue的watch监听数据变化,确保数据加载完成后才显示DOM。这两种方法都能有效避免用户看到undefined,提升用户体验。
摘要由CSDN通过智能技术生成

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
			}
		}
	},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值