computed里面可以用else if来实现嘛
时间: 2023-11-26 09:06:06 浏览: 32
在 `computed` 中使用 `else if` 是不合适的,因为 `computed` 是一个计算属性,它的返回值只能依赖于它所依赖的属性,而且 `computed` 计算属性只会在它所依赖的属性发生变化时重新计算。
如果你使用 `else if`,那么每次 `number` 变化时,都会重新计算 `chinese` 计算属性的所有分支,这样会降低性能并且不必要。如果你的条件比较多,可以使用 `switch` 语句或者对象字面量来实现。例如:
```vue
<template>
<v-input v-model="number"></v-input>
<p>{{ chinese }}</p>
</template>
<script>
export default {
data() {
return {
number: 0
}
},
computed: {
chinese() {
const map = {
1: '一',
2: '二',
3: '三',
};
return map[this.number] || '其他';
}
}
}
</script>
```
在上面的代码中,我们使用了一个对象字面量 `map` 来存储数字和中文的对应关系,然后在 `chinese` 计算属性中根据 `number` 的值返回对应的中文,如果 `number` 的值不在 `map` 中,就返回默认的中文“其他”。这样的实现方式既简单又高效。