react 官方文档 hooks 的介绍部分阐述了引入 hooks api 的理由:
https://reactjs.org/docs/hooks-intro.html#motivation
- It’s hard to reuse stateful logic between components
- Complex components become hard to understand
- Classes confuse both people and machines
我就不再啰嗦一遍了。
react 的整套理念都是基于 fp 的,偏偏 Component/PureComponent 设计成了跟 fp 格格不入的 oo。现在回过头看,不觉得很奇怪么?整套 hooks api 依然还是基于 fp 的理念,写出来也依然是函数,这才是 react 贯彻 fp 的完全形态。
控件的生命周期比 useEffect 复杂多了,this.foo = this.foo.bind(this) 并不比只能在顶层(不能在逻辑分支里)使用 hooks 更容易记住,useMemo 也并不比早期还要引入第三方库来实现 cache 更复杂。class/function 两种控件形式统一成了一种,不需要暴露生命周期这种内部实现也是对 api 更好的抽象,理论上更容易实现升级和向后兼容,实际上整套设计比一开始简单多了。
【 在 blueAurora (stoker) 的大作中提到: 】
: 是,react的诞生是带来革命性的前端发展。可是感觉后边越发展越过度设计了..
--
FROM 115.188.133.*