您好,如果喜欢我的文章,可以关注我的公众号「量子前端」,将不定期关注推送前端好文~

useImperativeHandle是react官方为了简便我们的ref操作,同时还可以让子组件返回给父组件自身的状态和方法去调用

useRef将ref绑定到某个子组件标签上,用以获取整个子组件的方法和参数
useImperativeHandle: 可以自定义暴露给父组件的方法或者变量

父组件

import React, { useState, useRef } from 'react'
import ChildList from './ChildList'export default () => {let parentRef = useRef(null)const [name, setName] = useState('li')return <div><ChildList parentRef={parentRef} name={name}></ChildList><button onClick={() => {console.log("parentRef", parentRef)}}>获取子组件</button></div>
}

子组件

import React, { useImperativeHandle, forwardRef } from 'react'export default forwardRef((props, ref) => {console.log("ref", ref)useImperativeHandle(ref, () => {return {childFn}})console.log(ref)const childFn = () => {console.log('子组件方法')}return <div><div ref={ref} /></div>
})

用了ref的桥梁就这样就可以在父组件中控制子组件了,而不仅仅只是子随父渲染了。

React-Hooks之useImperativeHandle使用,让父组件操纵子组件的状态和方法相关推荐

  1. 【译】什么是React Hooks

    原文:What are React Hooks? 作者:Robin Wieruch 译者:博轩 React Hooks 于 2018年10月的React Conf 中引入,作为在 React 函数组件 ...

  2. React 全家桶(react脚手架 redux react-redux react-router-dom ui库 reactHook)含 自定义hook的方法及使用

    文章目录 React 入门 React 简介 React 为何物 为何学习 React React 初体验 来一发 Hello React 创建虚拟 DOM 的两种方式:JS 和 JSX 虚拟 DOM ...

  3. 【Flutter】Flutter 布局组件 ( Wrap 组件 | Expanded 组件 )

    文章目录 一.Wrap 组件 二.Expanded 组件 三.完整代码示例 四.相关资源 一.Wrap 组件 Wrap 组件 : 该组件是可换行的水平线性布局组件 , 与 Row 组件间类似 , 但是 ...

  4. 【Flutter】Flutter 布局组件 ( FractionallySizedBox 组件 | Stack 布局组件 | Positioned 组件 )

    文章目录 一.FractionallySizedBox 组件 二.Stack 布局组件 三.Positioned 组件 四. 完整代码示例 五. 相关资源 一.FractionallySizedBox ...

  5. 【Flutter】Flutter 布局组件 ( 布局组件简介 | Row 组件 | Column 组件 | SizedBox 组件 | ClipOval 组件 )

    文章目录 一.Flutter 布局相关的组件简介 二.Row 和 Column 组件 三.SizedBox 组件 四.ClipOval 组件 五. 完整代码示例 六. 相关资源 一.Flutter 布 ...

  6. 【Flutter】Flutter 布局组件 ( PhysicalModel 组件 )

    文章目录 一.PhysicalModel 组件 二. 完整代码示例 三. 相关资源 一.PhysicalModel 组件 PhysicalModel 组件 : 可以将布局显示成不同的形状 , clas ...

  7. 【Flutter】StatefulWidget 组件 ( PageView 组件 )

    文章目录 一.PageView 组件 二.PageView 组件完整代码示例 三. 相关资源 一.PageView 组件 PageView 组件构造函数 : 构造函数中的可选参数就是 PageView ...

  8. 【Flutter】StatefulWidget 组件 ( Image 组件 | TextField 组件 )

    文章目录 一.Image 组件 二.TextField 组件 三. 相关资源 一.Image 组件 Image 组件有多个命名构造函数 , 可以从 文件 / 内存 / 网络 / Assets 中加载文 ...

  9. 【Flutter】StatefulWidget 组件 ( FloatingActionButton 组件 | RefreshIndicator 组件 )

    文章目录 一.FloatingActionButton 悬浮按钮组件 二.RefreshIndicator 组件 三. 相关资源 一.FloatingActionButton 悬浮按钮组件 Float ...

最新文章

  1. Arrays.asList详解
  2. 正则表达式,以前总结的,大不分来择自网上
  3. krylov子空间迭代法
  4. Sqlite学习笔记(五)SQLite封锁机制
  5. 技术团队的工程师文化:效率与价值
  6. oracle配置控制文件快照的位置以及名称为,oracle的备份与恢复
  7. deepin安装tomcat
  8. qq邮箱如何在win10邮箱连接到服务器,win10系统下邮箱怎么添加qq邮箱
  9. 微软开源用于大规模查找并修复漏洞的开发者工具 Project OneFuzz 框架
  10. 【转载】88E6390端口Link问题(PHY一直link up)BUG解决
  11. YUV444、YUV422、YUV420占用字节数
  12. Mac下安装java运行环境
  13. fireworks html制作,fireworks怎么制作网页
  14. quorum-maker中遇到的问题
  15. 微信小程序视频URL测试地址 MP4格式
  16. 2019手机CPU芯片性能天梯图
  17. 恐怕我今天不能在计算机上工作英语,英语翻译1、恐怕我现在不能走,因为我还没做完作业.( )i cannot leave now because i hav...
  18. 【转载】SaaS的行业概述及发展现状
  19. 【算法】最直接的算法——穷举法详解
  20. ZooKeeper之zoo.cfg配置

热门文章

  1. Keras vs. tf.keras: 在TensorFlow 2.0中有什么区别?
  2. C#中delegate详解
  3. 数独——个人项目(项目地址)
  4. 【吴恩达】prompt engineering(原则 迭代 文本概括 推断、订餐机器人)
  5. library的英语怎么读音_library怎么读
  6. java闰年满五换行_有关平年闰年的科学知识
  7. AnyChart入门— 10个实用示例
  8. 动态加载的函数库Dynamically Loaded (DL) Libraries
  9. 油溶性PbS/CdS量子点近红外发射光PL800nm-1600nm硫化铅/硫化镉量子点
  10. 优秀的项目经理,不简单,原来是偷偷做好这8件事