记录vue3解构props无响应式的坑

3,307 阅读1分钟
<script setup lang="ts">
    const { num } = defineProps<{ num: number }>()
</script>

以上代码num解构出来是不具有响应式的,我的理解是因为解构出来的值将赋值到新变量num中,这个变量并不是ref或reactive的值
解决方案: 使用vue3提供的toRefs方法,将解构出来的变量变为ref对象

<script setup lang="ts">
    const props = defineProps<{ num: number }>()
    const {num} = toRefs(props)
    console.log(num.value)
</script>