React 自定义钩子:从钩子返回引用与将引用作为钩子参数传递

Hyn*_*ekS 6 javascript reactjs react-ref react-hooks

考虑到我有一个使用一个或多个refsDOM 元素的自定义钩子,我看到了两种不同的方式来编写/使用这样的钩子(而且我知道可能还有更多细微差别 \xe2\x80\x93 例如回调引用)。

\n

选项 1:从自定义挂钩返回ref并在组件中使用它:

\n
const Option1 = () => {\n  const hooksRef = myCustomHookReturninARef()\n  \n  return <div ref={hooksRef}>Using returned ref as prop.</div>\n}\n
Run Code Online (Sandbox Code Playgroud)\n

选项 2ref :在组件中创建一个并将其传递给自定义挂钩:

\n
const Option2 = () => {\n  const componentsRef = React.createRef()\n  \n  myCustomHookExpectingRefArgument(componentsRef)\n  \n  return <div ref={componentsRef}>Using created ref as prop..</div>\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我一直在使用这两个选项,它们似乎都工作得很好。我知道这可能是一个固执己见的问题,但是:

\n

使用第一种方法与第二种方法相比是否有一些明显的缺点?

\n

syd*_*uki 0

不是 React 大师,但从我的角度来看,使用的唯一缺点Option1是你必须验证返回值是 a ref,从计算角度来看没有区别