vue中当数据为空时的处理
背景
后台返回的数据并不是固定的,可能为一个对象或者为空,可能是一个数组或者为空。
要展示的文字信息存在于对象的一个属性中,对象可能为空,属性可能为空,也可能为空字符串,这些情况都显示
暂无
。
<span>{{propertyShow}}</span>
data () {
return {
// 默认值
propertyShow: '暂无'
当获取到后台的数据后,如果不为空或空字符串,就赋值。
if (res.data.obj !== null) {
if (res.data.obj.property !== null) {
if (res.data.obj.property.trim() !== '') {
this.propertyShow = res.data.obj.property
要展示的图片在数组中,数组可能为空,也可能为空数组,默认展示第一张图片。
将值设置为数组类型
this.list = res.data.list || []
设置默认图片时只需判断数组长度
<img v-if="list.length>0" :src="list[0].url" alt="图片">
<img v-else src="../default.png" alt="默认图">
不设置值类型,直接赋值
this.list = res.data.list
设置默认图片时需要判断是否为空,而且必须先判断空,否则length
会报错
<img v-if="list===null || list.length===0" src="../default.png" alt="默认图">
<img v-else :src="list[0].url" alt="图片">
<img v-if="list===null" src="../default.png" alt="默认图">
<img v-else-if="list.length>0" :src="list[0].url" alt="图片">
<img v-else src="../default.png" alt="默认图">
<img v-if="list===null" src="../default.png" alt="默认图">
<img v-else-if="list.length===0" src="../default.png" alt="默认图">
<img v-else :src="list[0].url" alt="图片">