Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs useRef和callbackRef之间的差异(React Hooks)_Reactjs_React Hooks - Fatal编程技术网

Reactjs useRef和callbackRef之间的差异(React Hooks)

Reactjs useRef和callbackRef之间的差异(React Hooks),reactjs,react-hooks,Reactjs,React Hooks,我阅读了React的文档,他们提到: 如果要在React附加或分离对的引用时运行某些代码 对于DOM节点,您可能希望改用回调引用 为了测量DOM节点的位置或大小,可以使用 回拨参考 但是,我仍然不明白使用useRef和callbackRef之间的区别,有人能提供更好的解释吗 例如,如果useRef和callbackRef不同,为什么以下两个代码具有相同的结果 useRef: const h1Ref = React.useRef(null) React.useEffect(() =>

我阅读了React的文档,他们提到:

如果要在React附加或分离对的引用时运行某些代码 对于DOM节点,您可能希望改用回调引用

为了测量DOM节点的位置或大小,可以使用 回拨参考

但是,我仍然不明白使用useRef和callbackRef之间的区别,有人能提供更好的解释吗

例如,如果useRef和callbackRef不同,为什么以下两个代码具有相同的结果

useRef:

  const h1Ref = React.useRef(null)
  React.useEffect(() => {
    setHeight(h1Ref.current.getBoundingClientRect().height);
  },[])
回调参考:

 const measuredRef = useCallback(node => {
    if (node !== null) {
      setHeight(node.getBoundingClientRect().height);
    }
  }, []);
这是一个沙箱


useCallback
向您返回已记忆的函数引用,在您的示例中,您将其存储在
measuredRef
中,但在您的代码中,您并没有使用它做任何事情,所以您怎么会认为两者都在做相同的事情呢?
useCallback
向您返回已记忆的函数引用,在您的示例中,您将其存储在
measuredRef
中,但在您的代码中,您没有使用它做任何事情,那么是什么让您认为两者都在做相同的事情呢?