react hook

简介: react hook

React Hooks 是 React v16.8 中新增的一项功能,它能让函数组件拥有类组件中的一些特性,如状态和生命周期等。

以下是几个基本的 React Hooks:


useState


useState 是最基础的 Hook 之一,它可以让你在函数组件中保存和更新状态。useState 接收一个初始状态作为参数,并返回一个数组,数组中的第一项是当前状态的值,第二项是一个函数,可以用来更新状态。

import React, { useState } from 'react';
function Example() {
  const [count, setCount] = useState(0);
  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>
        Click me
      </button>
    </div>
  );
}

在上面的示例中,我们使用 useState 创建了一个名为 count 的状态变量,初始值为 0。然后,在按钮的 onClick 事件中,调用 setCount 函数来更新状态。


useEffect


useEffect 用于执行副作用操作,例如获取数据、订阅事件等。它接收两个参数:一个函数和一个可选的依赖数组。当依赖数组中的任何一个值发生变化时,函数就会被调用。如果依赖数组为空,则函数只会在首次渲染时被调用。

import React, { useState, useEffect } from 'react';
function Example() {
  const [count, setCount] = useState(0);
  useEffect(() => {
    document.title = `You clicked ${count} times`;
  }, [count]);
  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>
        Click me
      </button>
    </div>
  );
}

在上面的示例中,我们使用 useEffect 来更新页面标题。我们将标题设置为一个字符串,包含当前的点击次数。由于我们传递了 count 作为依赖数组,因此每次点击按钮时,useEffect 都会被调用。


useContext


useContext 可以让你在函数组件中使用 context。它接收一个 context 对象,并返回当前上下文的值。当上下文的值发生变化时,组件将自动重新渲染。

import React, { useContext } from 'react';
const ExampleContext = React.createContext('default');
function ChildComponent() {
  const value = useContext(ExampleContext);
  return (
    <div>
      {value}
    </div>
  );
}
function Example() {
  return (
    <ExampleContext.Provider value='Hello, world!'>
      <ChildComponent />
    </ExampleContext.Provider>
  );
}

在上面的示例中,ChildComponent 组件使用了 useContext,以获取 ExampleContext 的值。在 Example 组件中,我们通过 <ExampleContext.Provider> 隐藏地传递了 "Hello, world!" 作为上下文的值。由于 ChildComponent 使用了 useContext,因此它将自动重新渲染。

相关文章
|
4月前
|
前端开发
React 中的 Hook 概念
【8月更文挑战第31天】
41 0
|
5月前
|
前端开发
React useImperativeHandle Hook
【7月更文挑战第1天】React useImperativeHandle Hook
31 3
|
5月前
|
前端开发 JavaScript 数据格式
react18【系列实用教程】Hooks (useState,useReducer,useRef,useEffect,useContext,useMemo,useCallback,自定义 Hook )
react18【系列实用教程】Hooks (useState,useReducer,useRef,useEffect,useContext,useMemo,useCallback,自定义 Hook )
106 1
|
5月前
|
前端开发
Vue3 【仿 react 的 hook】封装 useTitle
Vue3 【仿 react 的 hook】封装 useTitle
60 0
|
5月前
|
前端开发 API
Vue3 【仿 react 的 hook】封装 useLocation
Vue3 【仿 react 的 hook】封装 useLocation
45 0
|
7月前
|
前端开发 JavaScript
【边做边学】React Hooks (二)——useEffect Hook
【边做边学】React Hooks (二)——useEffect Hook
|
7月前
|
前端开发 JavaScript
React中useEffect Hook使用纠错
React中useEffect Hook使用纠错
48 0
|
7月前
|
自然语言处理 前端开发 JavaScript
说说你对 React Hook的闭包陷阱的理解,有哪些解决方案?
说说你对 React Hook的闭包陷阱的理解,有哪些解决方案?
123 0
|
自然语言处理 前端开发 JavaScript
美丽的公主和它的27个React 自定义 Hook(四)
美丽的公主和它的27个React 自定义 Hook(四)
|
存储 前端开发 数据可视化
美丽的公主和它的27个React 自定义 Hook(三)
美丽的公主和它的27个React 自定义 Hook(三)