vuejs 中 ref 和 reactive 之间最重要的区别是什么?

What are the most important differences to note between ref and reactive in vuejs?

最近学习了vuejs,似乎无法完全掌握ref和reactive用法的本质区别。什么时候使用 ref 或 reactive 是正确的?

根据Anthony Fu(Vue.js冠军)的this article,我们可以总结为以下几点:

  • refs 被视为原始值
  • 反应对象
  • refs 仅由 .value 属性 突变,但对任何嵌套的 属性
  • 有反应
  • 反应物看起来像普通物体
  • 反应性对象有一些注意事项,例如在它们被破坏时会失去反应性。
  • 响应式对象在像 watch(()=>reactiveObj,(newVal,oldVal).... 一样被观看时应该用函数包装,不像 refs 是未包装的 watch(refProp,(newVal,oldVal)....

结论:

I’d say go with ref whenever you can