【发布时间】:2022-01-15 11:57:26
【问题描述】:
在使用 Vue 3 的 Composition API 时,我注意到在模板 refs 内部,当它们作为对象的属性被访问时,它们的行为会有所不同。我认为this example in the SFC Playground 对此进行了最好的总结,但这里是关键代码(来自单个文件组件):
<script>
import { ref } from 'vue';
export default {
setup() {
const wut = ref(false);
const obj = { wut };
return {
wut,
obj,
};
},
};
</script>
<template>
<!-- obj.wut - false -->
<h3>obj.wut - {{ obj.wut }}</h3>
<!-- !!obj.wut - true -->
<h3>!!obj.wut - {{ !!obj.wut }}</h3>
<!-- obj.wut.value - false -->
<h3>obj.wut.value - {{ obj.wut.value }}</h3>
<!-- !!obj.wut.value - false -->
<h3>!!obj.wut.value - {{ !!obj.wut.value }}</h3>
<!-- does display -->
<h3 v-if="obj.wut">display logic for this: v-if="obj.wut"</h3>
<!-- does not display -->
<h3 v-if="!obj.wut">display logic for this: v-if="!obj.wut"</h3>
<!-- typeof obj.wut - object -->
<h3>typeof obj.wut - {{ typeof obj.wut }}</h3>
</template>
谁能解释为什么在某些情况下它似乎将 ref 视为一个对象并在其他情况下解释它的值?这是一个错误,还是设计使然?
【问题讨论】:
标签: vue.js vuejs3 vue-composition-api