react常用的hooks有哪些?

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

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

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

html 复制代码
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的组合。

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

html 复制代码
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对象来获取其值:

html 复制代码
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元素或其他任意值。

html 复制代码
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可以根据实际需求灵活使用,帮助我们实现更便捷、高效的函数组件开发。

相关推荐
killerbasd38 分钟前
牧苏苏传 我不装了 4/7
前端·javascript·vue.js
吴声子夜歌1 小时前
ES6——二进制数组详解
前端·ecmascript·es6
码事漫谈1 小时前
手把手带你部署本地模型,让你Token自由(小白专属)
前端·后端
ZC跨境爬虫1 小时前
【爬虫实战对比】Requests vs Scrapy 笔趣阁小说爬虫,从单线程到高效并发的全方位升级
前端·爬虫·scrapy·html
爱上好庆祝1 小时前
svg图片
前端·css·学习·html·css3
橘子编程2 小时前
JavaScript与TypeScript终极指南
javascript·ubuntu·typescript
王夏奇2 小时前
python中的__all__ 具体用法
java·前端·python
叫我一声阿雷吧2 小时前
JS 入门通关手册(45):浏览器渲染原理与重绘重排(性能优化核心,面试必考
javascript·前端面试·前端性能优化·浏览器渲染·浏览器渲染原理,重排重绘·reflow·repaint
大家的林语冰2 小时前
《前端周刊》尤大开源 Vite+ 全家桶,前端工业革命启动;尤大爆料 Void 云服务新产品,Vite 进军全栈开发;ECMA 源码映射规范......
前端·javascript·vue.js
jiayong233 小时前
第 8 课:开始引入组合式函数
前端·javascript·学习