React-Hooks之useImperativeHandle使用,让父组件操纵子组件的状态和方法
您好,如果喜欢我的文章,可以关注我的公众号「量子前端」,将不定期关注推送前端好文~
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使用,让父组件操纵子组件的状态和方法相关推荐
- 【译】什么是React Hooks
原文:What are React Hooks? 作者:Robin Wieruch 译者:博轩 React Hooks 于 2018年10月的React Conf 中引入,作为在 React 函数组件 ...
- React 全家桶(react脚手架 redux react-redux react-router-dom ui库 reactHook)含 自定义hook的方法及使用
文章目录 React 入门 React 简介 React 为何物 为何学习 React React 初体验 来一发 Hello React 创建虚拟 DOM 的两种方式:JS 和 JSX 虚拟 DOM ...
- 【Flutter】Flutter 布局组件 ( Wrap 组件 | Expanded 组件 )
文章目录 一.Wrap 组件 二.Expanded 组件 三.完整代码示例 四.相关资源 一.Wrap 组件 Wrap 组件 : 该组件是可换行的水平线性布局组件 , 与 Row 组件间类似 , 但是 ...
- 【Flutter】Flutter 布局组件 ( FractionallySizedBox 组件 | Stack 布局组件 | Positioned 组件 )
文章目录 一.FractionallySizedBox 组件 二.Stack 布局组件 三.Positioned 组件 四. 完整代码示例 五. 相关资源 一.FractionallySizedBox ...
- 【Flutter】Flutter 布局组件 ( 布局组件简介 | Row 组件 | Column 组件 | SizedBox 组件 | ClipOval 组件 )
文章目录 一.Flutter 布局相关的组件简介 二.Row 和 Column 组件 三.SizedBox 组件 四.ClipOval 组件 五. 完整代码示例 六. 相关资源 一.Flutter 布 ...
- 【Flutter】Flutter 布局组件 ( PhysicalModel 组件 )
文章目录 一.PhysicalModel 组件 二. 完整代码示例 三. 相关资源 一.PhysicalModel 组件 PhysicalModel 组件 : 可以将布局显示成不同的形状 , clas ...
- 【Flutter】StatefulWidget 组件 ( PageView 组件 )
文章目录 一.PageView 组件 二.PageView 组件完整代码示例 三. 相关资源 一.PageView 组件 PageView 组件构造函数 : 构造函数中的可选参数就是 PageView ...
- 【Flutter】StatefulWidget 组件 ( Image 组件 | TextField 组件 )
文章目录 一.Image 组件 二.TextField 组件 三. 相关资源 一.Image 组件 Image 组件有多个命名构造函数 , 可以从 文件 / 内存 / 网络 / Assets 中加载文 ...
- 【Flutter】StatefulWidget 组件 ( FloatingActionButton 组件 | RefreshIndicator 组件 )
文章目录 一.FloatingActionButton 悬浮按钮组件 二.RefreshIndicator 组件 三. 相关资源 一.FloatingActionButton 悬浮按钮组件 Float ...
最新文章
- Arrays.asList详解
- 正则表达式,以前总结的,大不分来择自网上
- krylov子空间迭代法
- Sqlite学习笔记(五)SQLite封锁机制
- 技术团队的工程师文化:效率与价值
- oracle配置控制文件快照的位置以及名称为,oracle的备份与恢复
- deepin安装tomcat
- qq邮箱如何在win10邮箱连接到服务器,win10系统下邮箱怎么添加qq邮箱
- 微软开源用于大规模查找并修复漏洞的开发者工具 Project OneFuzz 框架
- 【转载】88E6390端口Link问题(PHY一直link up)BUG解决
- YUV444、YUV422、YUV420占用字节数
- Mac下安装java运行环境
- fireworks html制作,fireworks怎么制作网页
- quorum-maker中遇到的问题
- 微信小程序视频URL测试地址 MP4格式
- 2019手机CPU芯片性能天梯图
- 恐怕我今天不能在计算机上工作英语,英语翻译1、恐怕我现在不能走,因为我还没做完作业.( )i cannot leave now because i hav...
- 【转载】SaaS的行业概述及发展现状
- 【算法】最直接的算法——穷举法详解
- ZooKeeper之zoo.cfg配置
热门文章
- Keras vs. tf.keras: 在TensorFlow 2.0中有什么区别?
- C#中delegate详解
- 数独——个人项目(项目地址)
- 【吴恩达】prompt engineering(原则 迭代 文本概括 推断、订餐机器人)
- library的英语怎么读音_library怎么读
- java闰年满五换行_有关平年闰年的科学知识
- AnyChart入门— 10个实用示例
- 动态加载的函数库Dynamically Loaded (DL) Libraries
- 油溶性PbS/CdS量子点近红外发射光PL800nm-1600nm硫化铅/硫化镉量子点
- 优秀的项目经理,不简单,原来是偷偷做好这8件事