reactive | ref |
---|---|
❌ 只支持对象和数组(引用数据类型) | ✅ 支持基本数据类型 + 引用数据类型 |
✅ 在 <script> 和 <template> 中无差别使用 |
✅ 支持基本数据类型 + 引用数据类型 |
❌ 重新分配一个新对象会丢失响应性 | ✅ 重新分配一个新对象不会失去响应 |
能直接访问属性 | 需要使用 .value 访问属性 |
❌ 解构时会丢失响应性,需使用 toRefs) | ❌ 解构对象时会丢失响应性,需使用 toRefs |
结论:由于这些限制,我们建议使用 ref() 作为声明响应式状态的主要 API。