React Hooks之useImperativeHandle

useImperativeHandle

useImperativeHandle(ref, createHandle, [deps])

useImperativeHandle 可以让你在使用 ref 时自定义暴露给父组件的实例值。在大多数情况下,应当避免使用 ref 这样的命令式代码。

useImperativeHandle 应当与 forwardRef 一起使用:

// Imperative 迫切的,命令式的
import { useRef, useEffect, forwardRef, useImperativeHandle } from 'react';
const FC = forwardRef((props, ref) => {
  const inputRef = useRef();
  useImperativeHandle(ref, () => ({
    focus: () => {
      inputRef.current.focus();
    }
  }));
  return <input ref={inputRef} />;
})

function App() {
  const ref = useRef()
  return <FC ref={ref} ></FC>
}

export default App;
posted @ 2022-03-23 00:20  IslandZzzz  阅读(205)  评论(0编辑  收藏  举报