为什么都在说 React 比 Vue 难?

2021-12-25 10:54发布

react有无数种模式和反模式,如果你晒了自己的代码出来,别人会疯狂地指责你的代码,然后不让你做两件事:这也不让,那也不让。这个问题到了hooks出现以后变本加厉,API就那么几个,模式和反模式一大堆,谁都不认可别人的“最佳实践”。


react的“生态”引以为豪,但可能会给你选择困难,router这种非常核心的东西竟然也要搞搞分裂,redux系列就别说了,CSS方案更是可怕。说好听点叫百花齐放,说难听点就是神鬼乱舞,一般人根本分不清哪个好,只能跟跟风,或者看star数、看npm下载量。


vue其实这方面稍微好点,基本上一套下来整个社区都认可一些相对固定的方案,有比较公认的最佳实践了,大家也比较宽容,就算你写一个new Vue()做全局变量,用它来watch数据变化或者当事件总线用,别人也不会喷你说这个是bad practice。


vue-loader大体上确定了单文件组件的生态,别人扩展SFC的也有,不用SFC的也有,但基本上井水不犯河水,用模板的和用JSX的谁也不喷谁,反正又没碍着你不让你用,而且如果做组件库的话,混用的大有人在。


我个人觉得vue设计哲学里还是有一些中国人的中庸之道的,把简单和选择留给别人,复杂和无奈留给自己……


在 Vue3 中,Block TreePatchFlags 便是充分利用编译信息并在 Diff 阶段所做的优化。诸如此类,Vue 很轻松的降低使用者门槛。React 虽不可否认提供了很多很前言的创造性思想,比如 Time Slicing、Fiber、Hooks 等等... 对于新手来说,确实理解成本上会有一定限制。