Новая функция в React 19, которая позволяет проходить REFS в качестве реквизита вместо использования `forwardRef`, может повысить эффективность разработки несколькими ключевыми способами:
Проще и интуитивно понятный API
Передача ссылок в качестве обычного реквизита является более естественным и интуитивно понятным API по сравнению с использованием `forwardRef. Он лучше выравнивается с основным принципом реагирования передачи данных по дереву компонентов через реквизит. Это делает код легче для понимания и рассуждения, особенно для начинающих.
Снижение шаблона
Использование `forwardRef` требует обертывания дочернего компонента в вызове` forwardRef 'и передачи `ref` в качестве второго аргумента функциональному компоненту. Это добавляет код паттерной пластины. Передача ссылки непосредственно в качестве опоры устраняет этот дополнительный код.
Лучшая инкапсуляция
При использовании `forwardRef` дочерний компонент должен знать, что он получает рефери и должен прикрепить его к соответствующему элементу DOM. Передача ссылок в качестве опоры позволяет дочернему компоненту не знать о рефере, улучшая инкапсуляцию.
проще рефакторинг
Если вам нужно рефакторировать дерево компонентов и изменить точку вложения ссылки, проще обновить имя предложения, а не обновлять вызов `forwardref 'в нескольких местах. Это делает кодовую базу более поддерживаемой.
в соответствии с компонентами классов
В компонентах классов ссылки прикрепляются с использованием опоры `ref`, а не с помощью специального механизма` forwardRef. Разрешение ссылки в качестве реквизита в функциональных компонентах обеспечивает более согласованный API между классовыми и функциональными компонентами.
Проще
При использовании TypeScript проще введите проверку, пройденную в качестве опоры по сравнению с использованием типов `forwardRef` и` Refttributes '. Тип опоры может быть выведен непосредственно из объекта `ref`.
Таким образом, новая функция реквизитов в качестве реквизита делает API React более интуитивно понятным, снижает пакет, улучшает инкапсуляцию и делает кодовую базу более поддерживаемой - все это повышает эффективность разработчика при работе с ссылками в React 19 и выше [1] [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_prop_advance_beginner_question/
[5] https://blog.logrocket.com/why-you-should-use-refs-pparilly-in-production/
[6] https://react.dev/blog/2024/04/25/react-19-upgrade-guide
[7] https://dev.to/dalcio/react-performance-useState-reducer-ref-heoretican-summary-1bok
[8] https://www.freecodecamp.org/news/new-react-19-features/