VUE和React的区别
vue和React的区别
- 核心思想的差异
- Vue的响应式系统更符合直接,自动收集依赖,性能下限很高(Vue的核心是Mutable,可变);
- React强调数据的不可变性和函数式编程思想,对开发者的心智要求更高,但灵活性也更高(React的核心强调不可变)
- Diff的差异
- Vue(3.x)静态标记
- vue的编译器非常聪明,在编译阶段,他就知道哪些节点是静态的(永远不变),哪些是动态的
- Diff的时候,Vue会直接跳过静态节点,只对比有标记的动态节点
- React: 全量Diff+递归
- React假设整个树都可能变,React18/19引入了concurrent Mode(并发模式)和Fiber架构。它把Diff任务切分成一个个小任务,如果主线程有更优先级高的事,就会停下来,等会再算;它不是算的快,是会“插队”
- 开发体验
- Vue
- 写起来很快,ref一把梭
- 不用担心闭包陷阱,不用手动依赖数组
- 但模板语法有时候不如JSX灵活
- React
- 心智负担重,时刻注意useEffect的依赖数组有没有漏写,需要使用useMemo,useCallback去手动优化性能
- All in JS