vue 页面元素绑定对象属性,对象属性不存在导致渲染错误的几种处理方式

64 阅读1分钟

1. 在模板中使用逻辑或(||)操作符

<template>  
  <div>{{ myObject.property1 || '默认值' }}</div>  
</template>

||运算: myObject.property1为true输出myObject.property1 myObject.property1为false输出‘默认值’

2.使用v-if进行条件渲染

<template>  
  <div v-if="myObject && myObject.property1">{{ myObject.property1 }}</div>  
  <div v-else>属性不存在</div>  
</template>

如果你不想在属性不存在时渲染任何内容,可以使用v-if来检查属性是否存在

3.使用可选链

<template>  
  <div>{{ myObject?.property1 }}</div>  
</template>

从ES2020开始,JavaScript引入了可选链操作符(?.),允许你安全地访问深层嵌套的属性而不需要明确验证每一层是否存在 在这个例子中,如果myObjectundefinednullmyObject?.property1将不会抛出错误,而是简单地返回undefined

4.计算属性(Computed Properties)

<template>  
  <div>{{ safeProperty1 }}</div>  
</template>
computed: {  
  safeProperty1() {  
    return this.myObject && this.myObject.property1 ? this.myObject.property1 : '默认值';  
  }  
}

如果逻辑复杂,或者需要在多个地方使用到同一个经过处理的属性,那么适合计算属性