vue在数据没有请求回来的时候,不渲染页面

vue在数据没有请求回来的时候,渲染了一次无数据页面,所有值都是undefined,当数据请求回来之后,又渲染了一次有数据的页面,请问如何让页面没有数据不渲染

阅读 5k
3 个回答

给那些要渲染到页面上的数据,赋值一个默认值就行了,比如空或者占位符'-'。请求成功后再赋值为请求回来的值。这样是没有数据的时候还渲染页面,只不过不会出现undefined的情况。

<template>
    <div>{{ user.name }}</div>
</template>

export default {
    data(){
        return {
            user: { name: '-' }
        }
    },
    mounted(){
       axios.get(/api).then(res => {
            this.user = res.data.user
       })
    }
}

另一种,就是在每个数据渲染的地方去做兼容

<template>
    <div>{{ user.name || '' }}</div>
</template>

加入loading ,在ajax请求方法里做数据判断

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题