vue3 reactive对象的watch

代码
<script setup>
import { ref,reactive, watch } from 'vue'
const obj = reactive({ count: 0 })
const yourKnow0 = ref('')
const yourKnow1 = ref('')
let cnt = 0
watch(obj, (newValue, oldValue) => {
// 在嵌套的属性变更时触发
// 注意:`newValue` 此处和 `oldValue` 是相等的
// 因为它们是同一个对象!
yourKnow0.value = JSON.stringify(newValue)
yourKnow1.value = JSON.stringify(oldValue)
console.log(cnt++,'=',JSON.stringify(newValue),JSON.stringify(oldValue))
})
obj.count++
</script>
<template>
<p>
Ask a yes/no question:
<input v-model="obj.count" />
</p>
<p>{{ obj.count }}</p>
<p>changed: {{ yourKnow0 }}</p>
<p>changed: {{ yourKnow1 }}</p>
</template>
官方这么说:

Tips: 也就是说,oldValue没用!建议自己加个影子对象来对比前后更改
官方文档及其示例:
本文来自博客园,作者:蓝天上的云℡,采用 BY-NC-SA 许可协议,转载请注明:转载自作者蓝天上的云℡ 原文链接 https://www.cnblogs.com/yucloud/p/vue3_watch_reactive.html

浙公网安备 33010602011771号