基础:
vue 是双向绑定,MVVM
react 是单项数据流 ui = f(data)
进阶:
vue 早就不强调 MVVM,主要强调数据响应式(核心),也早就没有了双向绑定,全篇文档就只有 v-model 出现了这个词。
react 核心的函数式,(无副作用,引用透明,纯函数,数据不可变)这些词 vue 从来不会提到,绝对不会说,hook 是怎么实现在函数里实现状态
vue 是一个以数据响应式为核心的 ui 框架,她的核心思想是吧所有的数据放进一个对象,然后操作这个对象,对象被监听对改变以后去改变ui。
react 用一个函数来表示一个组件,你爸数据放进去,他就会把数据渲染进去,然后我们在放数据的时候,我们要做到数据不可变,不能像vue那样去改变之前的数据,而是新生成一个跟之前不一样的数据,然后塞到函数里,然后这个函数会生成新的 ui,之后通过 dom diff 对比这两个ui,得到一个patch,然后把这个patch更新到dom树立,
这个思想完全和vue不一样,有没有发现vue是不需要dom diff,数据一变去更新相关的ui就好了,为什么vue 也有dom diff呢?vue是为了解决另一个问题,server render 问题,解决模版优化的问题而不是 ui 的问题。react 是需要的,他得到的是两个不同的ui, 通过 diff 一下才知道那里需要更新。