react的forwardRef 开销大么

新手上路,请多包涵

组件使用 forwardRef 开销大 还是将需要有自己的状态的自组件提到父组件中 开销大

阅读 2.2k
2 个回答

forwardRef用来解决控制问题,跟状态没有关系。父组件想通过ref来读子组件的状态,本身这个思路就是有问题的。换个思路吧

forwardRefmaterial-ui 库中就被广泛使用,实践表明它的开销并非不可接受。如果需要在 FC 里使用 ref 功能,forwardRef 也是不可或缺的。

我不是很明白你这个“将需要有自己的状态的自(子)组件提到父组件中”是什么意思,按照 React 的设计哲学,该状态提升的时候就应该果断地状态提升,只有当整个数据流都是自上而下地进行的时候,你的编程体验才会最好。

综上,如果必须得用 forwardRef 那就用,但如果也能通过状态提升来避免这个 forwardRef 那也不妨大胆地提。局部逆向的数据流十分不自然而且容易出错。

推荐问题