Vue3 只用 ref 开发

我们知道 Vue3 的 composition 用法,有 ref 和 reactive

但是,个人建议,开发的时候最好只用 ref,并将其视为响应式对象

为何如此?

  • ref 支持的数据结构比 reactive 多得多
  • computed,toRef,toRefs,shallowRef,triggerRef,customRef,这些 API 的返回值全是 Ref 类型,而这些 API 基本上覆盖率:传递,调度控制,扩展三大方面,复用性比 reactive 强得多得多
  • ref 无法避免使用,而模板会自动解包,为了防止传递中出现ref嵌套,reactive获取失败等问题,直接使用ref,并将其想象成属性value的对象,能大大减少心智负担
  • 使用 shallowRef 时,value下访问数据可响应,更加直观

由于 proxy 的存在,在开发过程中,我们可以直接使用 ref,修改它的任意层级,不用担心性能和可变性问题

可能有人要问,为啥不用担心不变性?
因为 proxy 本身就是用来保证不变性的,它的每次变更,都可以被捕获到

所以,开发的时候只考虑 ref,你会获得非常好的开发体验~