当前位置: 首页 > news >正文

react hooks浅谈

一.useEffect

useEffect是hooks中的生命周期函数
1.只要页面更新就触发回调:
useEffect(() => {
// 执行逻辑
})
2.只运行一次(组件挂载和卸载时执行),第二个参数传空数组[]:
useEffect(() => {
//
},[])
3. 条件执行,第二个参数传值,可以是多个数据源的数组,当依赖的数据源发生改变时,执行回调:
useEffect(() => {
//
},[source1,source2…])

二.useState

useState用来更新数据状态
类组件是用的setState({})

三.useRef, useImperativeHandle,forwardRef

1.首先我们先用React.useRef创建一个ref
const reRef = React.useRef(null);
2. forwardRef是允许了 父组件向子组件传递一个ref,父组件才可以获得子组件的方法和实例元素
3. useImperativeHandle 是在子组件中接收这个ref 可以暴露子组件的特定属性或方法给父组件

例子:
父组件:
import React, { useEffect, useState, useRef } from ‘react’;
const reRef =useRef(null);
reRef.current.fn();

子组件:
function Parent(props, ref) {
const [visible, setVisible] = useState);

useImperativeHandle(ref,()=>({
fn: ()=>{
console.log(‘这是传的第一个方法’);
},
fn2: ()=>{
console.log(‘这是传的第二个方法’);
},
setVisible,//这是传的一个属性值
})

}

export default forwardRef(Parent);

注:当需要复杂的传值的属性和方法调用时 这么用可以
但一般单纯的回归方法调用就能解决就不用这样写了
比如
父组件:
<Parent onClose={(num)={
console.log(881,num)

}}>

http://www.lryc.cn/news/263966.html

相关文章:

  • stable diffusion webui之lora调用
  • FormData文件上传多文件上传
  • 八股文打卡day4——计算机网络(4)
  • TensorFlow(2):Windows安装TensorFlow
  • 一文解决idea导入源码控制台爆红问题
  • 排序算法——快排
  • 第二节TypeScript 基础语法
  • Go、Python、Java、JavaScript等语言的求余(取模)计算
  • scrapy快加构造并发送请求
  • 【C++】谈谈深拷贝与浅拷贝
  • 电商API接口如何驱动业务:代码演示与解析
  • 秋招总结_就业
  • 基于查表法的水流量算法设计与实现
  • Python:复制、移动文件到指定文件夹
  • 类和对象(中篇)
  • 简单几步完成SVN的安装
  • NFS原理详解
  • 查询后矩阵的和
  • Flutter实现丝滑的滑动删除、移动排序等-Dismissible控件详解
  • JDK bug:ciObjectFactory::create_new_metadata:原因完全解析
  • 【数据结构】并查集的简单实现,合并,查找(C++)
  • 2023美团商家信息
  • 0155 - Java 数组
  • Java 语言有哪些特点
  • SAP 特殊采购类50简介----虚拟件
  • C语言——内存函数的使用与模拟实现
  • Mysql索引事务(面试高频)
  • SpringCloudGateway 3.1.4版本 Netty内存泄漏问题解决
  • STM32内部是怎么工作的
  • MyBatis的配置文件