Vue3如何和vue2的set属性相似,去设置先前不存在的属性以获得响应式
时间: 2024-10-14 20:18:32 浏览: 17
从JavaScript属性描述器剖析Vue.js响应式视图
Vue3中,如果你想要设置一个先前不存在的属性并使其成为响应式的,你可以使用`ref`对象或者`reactive`函数。这两个都是Vue3提供的响应式系统工具。
1. **使用`ref`**: `ref`是一个简单的包装对象,它包裹任何类型的值,并返回一个响应式的proxy。当你通过`ref`创建一个新的属性时,例如:
```javascript
const obj = ref({}); // 创建一个空的对象字面量
obj.value = 'hello'; // 这将自动响应
```
如果你在`obj`上直接设置一个新属性,如`obj.newProp`,也会自动响应。
2. **使用`reactive`**: 对于更复杂的对象或已有对象,你可以使用`reactive`从不可观测变为可观察,比如:
```javascript
import { reactive } from 'vue';
const state = reactive({ name: '' });
state.newProp = 'world'; // 现在newProp也是响应式的了
```
无论是`ref`还是`reactive`,它们都能让动态添加的新属性实时更新视图,就像Vue2的`$set`方法一样。
阅读全文