vue3reactive整体重新赋值不响应
时间: 2023-07-26 14:36:28 浏览: 182
解决vue接口数据赋值给data没有反应的问题
如果你使用Vue3的响应式API `reactive`,整体重新赋值是不会触发响应的。这是因为`reactive`只会在对象属性的访问和修改时才会触发更新,而不是在整个对象被重新赋值时。
如果你想要在整体重新赋值时触发响应,可以使用Vue3的`toRefs`函数将响应式对象转换为普通的对象,然后使用`watch`函数监听整个对象的变化,如下所示:
```javascript
import { reactive, toRefs, watch } from 'vue'
const state = reactive({
name: 'John',
age: 30
})
// 转换为普通对象
const stateRefs = toRefs(state)
// 监听整个对象的变化
watch(stateRefs, (newValue) => {
console.log('state changed:', newValue)
})
// 整体重新赋值
stateRefs.value = {
name: 'Mary',
age: 25
}
```
这样,在整个对象被重新赋值时,watch函数就会被触发,并且传入的参数为新的对象。
阅读全文