React Hooks 是完美的解决方案吗

不是。

…好吧 ┓( ´∀` )┏ 多说两句,为什么react hooks 在解决了大部分业务逻辑封装的问题之后仍然是不完美的,甚至于说是问题很大。

React本身的设计决定了它不是一个强大的状态/生命周期系统

React的生命周期完全服务于UI渲染,也仅限于UI渲染。然而大部分的业务逻辑是在与UI形成一定耦合的情况下,还需要更多更灵活的操作。例如一些CS交互和复合的事件系统。React的选择是将这部分完全交给第三方解决方案来处理(比如Mobx,Redux,Immer等等)。但这又带来了一个额外的问题。即React自身的生命周期是非常封闭的,外部的系统在非侵入的情况下很难直接操纵React的渲染逻辑。

UI=f(State)

是React的核心逻辑,但是这个State的位置却十分的微妙,受限于React的更新逻辑,无限制的使用 props 和 context 透传状态只会丧失精细控制渲染的能力。如果使用了Mobx等响应式的状态管理,又会和React自顶而下的数据流产生冲突。

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计