问题代码如下:
vue
<script setup lang="ts">
const { title } = defineProps<{
title: string;
}>();
</script>
<template>
<div class="property-input">{{ title }}</div>
</template>解决:因为析构赋值,变量title相当于const title = props.title,它只是一个普通字符串类型,并非 Vue 中的响应式类型。
又因为setup实际上只执行一次,所以title的值只会是最初创建组件时的值,不会随props一起变化,除非在onBeforeUpdate时重新赋值。
结论:不要对props实用析构赋值,直接引用props。
vue
<script setup lang="ts">
const props= defineProps<{
title: string;
}>();
</script>
<template>
<div class="property-input">{{ props.title }}</div>
</template>