当前位置: 首页 > 面试题库 >

请说说什么是useImperativeHandle?

王宏深
2023-03-14
本文向大家介绍请说说什么是useImperativeHandle?相关面试题,主要包含被问及请说说什么是useImperativeHandle?时的应答技巧和注意事项,需要的朋友参考一下

封装组件对外通过 ref 暴露的信息。
常用场景是子组件不希望父组件直接操作 dom,而是通过暴露固定方法

下面方法中,父组件通过 inputRef 只能获取到 value 属性,而没有其他的DOM信息

import React, { useRef, useImperativeHandle, useEffect } from 'react';

const Parent = () => {
  const inputRef = useRef(null);

  useEffect(() => {
    setTimeout(() => {
      if (inputRef.current) {
        console.log(inputRef.current);
        inputRef.current.value;
      }
    }, 3000);
  }, []);

  return <Child ref={inputRef} />
}

const ChildComponent = ({ propsRef }) => {

  useImperativeHandle(propsRef, () => ({
    value: propsRef.current.value
  }), [propsRef]);
  // 这里使用了 uncontrolled component
  return <input ref={propsRef} defaultValue='xxx' />
}

const Child = React.forwardRef((props, ref) => {
  return <ChildComponent {...props} propsRef={ref} />
});

export default Parent;
 类似资料:
  • 本文向大家介绍请说说什么是useRef?相关面试题,主要包含被问及请说说什么是useRef?时的应答技巧和注意事项,需要的朋友参考一下 useRef returns a mutable ref object whose .current property is initialized to the passed argument (initialValue). The returned objec

  • 本文向大家介绍请说说什么是useReducer?相关面试题,主要包含被问及请说说什么是useReducer?时的应答技巧和注意事项,需要的朋友参考一下 基于 redux 思想实现简易数据控制流,useState 基于 reducer 实现

  • 本文向大家介绍请说说react中Portal是什么?相关面试题,主要包含被问及请说说react中Portal是什么?时的应答技巧和注意事项,需要的朋友参考一下 传送门(真传送门)https://zhuanlan.zhihu.com/p/29880992

  • 本文向大家介绍请你说说react的路由是什么?相关面试题,主要包含被问及请你说说react的路由是什么?时的应答技巧和注意事项,需要的朋友参考一下 react-router这个回答我给满分。

  • 本文向大家介绍请说说什么是分区响应图?相关面试题,主要包含被问及请说说什么是分区响应图?时的应答技巧和注意事项,需要的朋友参考一下 img attribute - can use it, example: - from

  • 本文向大家介绍请说说css的三大特性是什么?相关面试题,主要包含被问及请说说css的三大特性是什么?时的应答技巧和注意事项,需要的朋友参考一下 层叠性 继承性 优先级