框架、库在演进中,是解决了问题?还是留下了各种坑?
Functional Components、Class Components,
UI、State 的拆分和‘绑架’,
Async,
分层,
类型,
…
已经看到了曾经 Angular 设计的超前性和正确性:类、类型、强制分层、JS/TS+HTML+CSS、RxJS…
Vue 和 React 面临的问题:已有版本的用户群体巨大,受影响项目巨多;升级版本要‘顾后’,有包袱,不能像 AngularJS => Angular 这样跨跃式前进。
解决的方案:杂糅新旧各种技术细节,或者跳票(参考 Vue 3.0)。
React 在目前版本上引入了 Hooks,试探着走上了 Functional programming 路子。通过几个小项目下来,嫌弃以前 Class 不够干净,现在 Hooks 并没有解决“优雅”的问题,useXXX
instead of lifecycle
& this
。
Vue 方面,尤大肯定早就有看到这类问题,3.0 版本技术规划和延迟,能明显感觉到其历史包袱重,很尴尬,走 Function 还是 Class?而 AngularJS 断层带来的影响和教训在那。
React 留下的坑:造成了社区两种不同的编程范式,React 无法去结束这种分裂;另外范式下的‘不优雅’实现,React 和社区也没有办法去解决。我认为,这影响极其深远,并且在很长一段时间内将会继续存在。
Vue 留下的坑,很多:
- Vue 是哪种范式编程?开发人员如何树立相关的意识,如何承担对应的心智负担?
- 既然
.vue
了,模板还有存在的意义?已经不在‘渐进式’范畴。 - 为什么是
vuex
,而不是vue-redux
? - Vue 主张‘渐进式、弱主张’,但实践时,并非如此,Web 项目无法避免脚手架、工程化。
综上,React 和 Vue 团队能否像 Google 那样,去任性地探索一种新的实现了?