1.定义一个响应式对象,将数组转为响应式对象。
const arr = reactive([
{
id: 1, name: 'Alice' },
{
id: 2, name: 'Bob' },
{
id: 3, name: 'Charlie' }
])
- 使用 watchEffect 监听数组中某一项的变化。
watchEffect(() => {
console.log(arr[1].name)
})
这里的第一个参数是一个函数,该函数中访问了要监听的数组中的某一项,当这一项发生变化时,watchEffect 函数会自动执行该函数,并打印出最新的值。
需要注意的是,在使用 watchEffect 监听数组中某一项的变化时,不能直接访问数组本身,而是要访问数组的某一项才能触发监听函数的执行。这是因为 watchEffect 函数只能监听到被访问的响应式数据,而无法监听到未被访问的响应式数据。
总结一下,使用 Vue 3.x 中的 reactive 函数和 watchEffect 函数可以方便地实现对数组中某一项的监听,而不需要使用 $set 和 deep。