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

react常用的hooks有哪些?

React常用的Hooks包括以下几种:

        1.useState:用于在函数组件中创建和管理状态。它返回一个数组,第一个值是当前状态的值,第二个值是更新状态的函数。

使用时,首先通过解构赋值获取状态值和更新函数,并设置初始状态:

import React, { useState } from 'react';function Example() {const [count, setCount] = useState(0);return (<div><p>点击了 {count} 次</p><button onClick={() => setCount(count + 1)}>点击增加</button></div>);
}

上述例子中,useState创建一个名为count的状态变量,并通过setCount函数来更新count的值。每次点击按钮时,count的值会加1。

        2.useEffect:用于在函数组件中执行副作用操作,例如订阅数据、手动修改DOM等。可以理解为componentDidMount、componentDidUpdate和componentWillUnmount的组合。

使用时,传入一个回调函数作为第一个参数,该回调函数将在组件渲染后执行:

import React, { useState, useEffect } from 'react';function Example() {const [count, setCount] = useState(0);useEffect(() => {document.title = `点击了 ${count} 次`;});return (<div><p>点击了 {count} 次</p><button onClick={() => setCount(count + 1)}>点击增加</button></div>);
}

上述例子中,每次count发生变化时,通过useEffect更新页面标题。如果不传入第二个参数(依赖数组),则useEffect会在每次组件重新渲染后都执行。

        3.useContext:用于在函数组件中访问和使用Context的值。

使用时,在函数组件中通过调用useContext并传入对应的Context对象来获取其值:

import React, { useContext } from 'react';const UserContext = React.createContext();function Example() {const user = useContext(UserContext);return <div>当前登录用户:{user}</div>;
}

上述例子中,通过useContext获取了UserContext中的user值。

        4.useRef:用于在函数组件中创建可持久化的引用,类似于class组件中的ref。

使用时,通过调用useRef获取一个可变的ref对象,可以将其赋值给DOM元素或其他任意值。

import React, { useRef } from 'react';function Example() {const inputRef = useRef(null);const handleClick = () => {inputRef.current.focus();};return (<div><input ref={inputRef} type="text" /><button onClick={handleClick}>聚焦输入框</button></div>);
}

上述例子中,定义了一个inputRef引用,并将其赋值给输入框的ref属性。点击按钮时,通过inputRef.current.focus()使输入框获得焦点。

这些Hooks可以根据实际需求灵活使用,帮助我们实现更便捷、高效的函数组件开发。

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

相关文章:

  • Nacos config 配置中心详解
  • C++ UDP通信
  • 自由程序员想接私活?那你还不得知道这几个接单平台!最后一个就是宝藏!!
  • 二叉树与递归的相爱相杀
  • Docker 安装 reids
  • opensl学习——base16编码解码、base64编码解码、ASCII码表、扩展ASCII码
  • gazebo各种插件
  • C语言Free空指针会怎样?
  • 软件测试全套教程,软件测试自学线路图
  • 禁止浏览器缩放
  • 前端食堂技术周刊第 100 期:TS 5.3 Beta、ViteConf2023、Rspress 1.0、Fresh 1.5、Chrome 118
  • 汇川IT7000系列HMI使用脚本实现画面跳转时自动切换手自动模式
  • FDTD Solutions笔记
  • SQL SELECT DISTINCT(选择不同) 语法
  • 常见的数据结构及应用
  • 基于模型预测人工势场的船舶运动规划方法,考虑复杂遭遇场景下的COLREG(Matlab代码实现)
  • 【UE5 Cesium】19-Cesium for Unreal 建立飞行跟踪器(4)
  • TrustZone
  • ✔ ★【备战实习(面经+项目+算法)】 10.16学习时间表(总计学习时间:5h)
  • React + Router
  • 微信小程序设置动态变量设值
  • 闪站侠洗衣洗鞋多门店多用户管理系统,洗鞋店干洗店小程序开发;
  • JDBC增删改查示例
  • emqx broker安装
  • 如何选择国产压力测试工具?
  • 基于AT89C51流水花样灯proteus仿真设计
  • android U广播详解(二)
  • 导航守卫的使用记录和beforeEach( )死循环的问题
  • SpringMVC源码分析(三)HandlerExceptionResolver启动和异常处理源码分析
  • 系统架构与Tomcat的安装和配置