Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon 新的REF作为道具功能如何提高发展效率


新的REF作为道具功能如何提高发展效率


React 19中的新功能允许通过Refs作为道具而不是使用“ forwardRef”可以以几种关键的方式提高发展效率:

##更简单,更直观的API

与使用“ forwardRef”相比,通过REF作为常规道具是一种更自然和直观的API。它与核心反应原理更好地一致,该原理通过道具将数据传递到组件树。这使得代码更容易理解和推理,尤其是对于初学者而言。

##减少样板

使用“ forwardRef”需要将子组件包裹在`eforwerRef'呼叫中,然后将``ref''作为第二个参数传递给函数组件。这添加了一些样板代码。直接将裁判传递为prop可以消除此额外代码。

##更好的封装

使用“ forwardRef”时,子组件需要意识到它正在接收ref,并且需要将其连接到适当的DOM元素。将裁判作为道具传递,使孩子组成部分不知道REF,从而改善了封装。

##更容易重构

如果您需要重构组件树并更改Ref附件,则更简单地更新道具名称,而不必在多个位置更新“ forwardRef”调用。这使代码库更可维护。

##与类组件一致

在类组件中,使用“ Ref” Prop,而不是通过特殊的forwardRef”机制附加了REF。允许参考作为功能组件中的Props提供的Props在类和功能组件之间提供更一致的API。

##更轻松的类型检查

使用TypeScript时,与使用“ forwardref”和`refatibutes'类型相比,输入ref传递为道具更简单。可以直接从“ REF”对象推断道具类型。

总而言之,新的参考作为Props功能使React API更直观,减少样板,改善封装并使代码库更加可维护 - 所有这些都在与React 19及以后的RefS一起工作时提高了开发人员效率[1] [3] [3] [4]。

引用:
[1] https://www.copycat.dev/blog/react-forwardref/
[2] https://stackoverflow.com/questions/58578570/value-of-using-react-forwardref-vs-custom-ref-prop
[3] https://legacy.reactjs.org/docs/forwarding-refs.html
[4] https://www.reddit.com/r/reactjs/comments/1asgpy9/ref_as_a_a_a_prop_advance_beginner_question/
[5] https://blog.logrocket.com/why-you-should-should-use-refs-sparely-in-production/
[6] https://react.dev/blog/2024/04/25/react-19-upgrade-guide
[7] https://dev.to/dalcio/reaeact-performance-usestate-reducer-refer-ref-weorcetical-summary-summary-1bok
[8] https://www.freecodecamp.org/news/new-react-19-features/