国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

React的7個常用Hooks及使用場景(含示例)

這篇具有很好參考價值的文章主要介紹了React的7個常用Hooks及使用場景(含示例)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

React是一款非常流行的JavaScript庫,它提供了許多Hooks,用于管理函數(shù)組件的狀態(tài)和生命周期。下面是React的每個Hooks的使用場景和示例:

No1、useState

useState用于在函數(shù)組件中管理狀態(tài)。
它返回一個包含當(dāng)前狀態(tài)和一個更新狀態(tài)的函數(shù)的數(shù)組。更新狀態(tài)的函數(shù)可以接受一個新的值,并更新狀態(tài)。

import React, { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  function handleClick() {
    setCount(count + 1);
  }

  return <button onClick={handleClick}>Count: {count}</button>;
}

No2、useEffect

useEffect用于在函數(shù)組件中處理副作用。
它接受兩個參數(shù):一個副作用函數(shù)和一個依賴數(shù)組。當(dāng)依賴數(shù)組中的任何一個值發(fā)生變化時,副作用函數(shù)將被調(diào)用。

import React, { useState, useEffect } from 'react';

function Timer() {
  const [time, setTime] = useState(0);

  useEffect(() => {
    const interval = setInterval(() => {
      setTime(time + 1);
    }, 1000);

    return () => clearInterval(interval);
  }, [time]);

  return <div>Time: {time}</div>;
}

No3、useContext

useContext用于在函數(shù)組件中使用上下文。
它接受一個上下文對象并返回上下文的當(dāng)前值。當(dāng)上下文的值發(fā)生變化時,函數(shù)組件將重新渲染。

import React, { createContext, useContext } from 'react';

const ThemeContext = createContext('light');

function Header() {
  const theme = useContext(ThemeContext);

  return (
    <header style={{ background: theme }}>
      <h1>My App</h1>
    </header>
  );
}

function App() {
  return (
    <ThemeContext.Provider value="dark">
      <Header />
    </ThemeContext.Provider>
  );
}

No4、useReducer

useReducer用于在函數(shù)組件中管理復(fù)雜的狀態(tài)。
它接受一個reducer函數(shù)和一個初始狀態(tài),并返回一個包含當(dāng)前狀態(tài)和一個派發(fā)操作的數(shù)組。派發(fā)操作將一個操作對象發(fā)送到reducer函數(shù)中,并返回一個新的狀態(tài)。

import React, { useReducer } from 'react';

const initialState = { count: 0 };

function reducer(state, action) {
  switch (action.type) {
    case 'increment':
      return { count: state.count + 1 };
    case 'decrement':
      return { count: state.count - 1 };
    default:
      throw new Error();
  }
}

function Counter() {
  const [state, dispatch] = useReducer(reducer, initialState);

  function handleIncrement() {
    dispatch({ type: 'increment' });
  }

  function handleDecrement() {
    dispatch({ type: 'decrement' });
  }

  return (
    <>
      <button onClick={handleIncrement}>+</button>
      <span>{state.count}</span>
      <button onClick={handleDecrement}>-</button>
    </>
  );
}

No5、useCallback

useCallback用于在函數(shù)組件中緩存回調(diào)函數(shù)。
它接受一個回調(diào)函數(shù)和一個依賴數(shù)組,并返回一個緩存的回調(diào)函數(shù)。當(dāng)依賴數(shù)組中的任何一個值發(fā)生變化時,緩存的回調(diào)函數(shù)將被更新。

import React, { useState, useCallback } from 'react';

function Parent() {
  const [count, setCount] = useState(0);

  const handleClick = useCallback(() => {
    setCount(count + 1);
  }, [count]);

  return (
    <>
      <Child onClick={handleClick} />
      <span>Count: {count}</span>
    </>
  );
}

function Child({ onClick }) {
  return <button onClick={onClick}>Click me</button>;
}

No6、useMemo

useMemo用于在函數(shù)組件中緩存計算結(jié)果。
它接受一個計算函數(shù)和一個依賴數(shù)組,并返回一個緩存的計算結(jié)果。當(dāng)依賴數(shù)組中的任何一個值發(fā)生變化時,計算函數(shù)將被重新計算。

import React, { useMemo } from 'react';

function ExpensiveComponent({ value1, value2 }) {
  const result = useMemo(() => {
    console.log('calculating result');
       return value1 * value2;
  }, [value1, value2]);

  return <div>Result: {result}</div>;
}

No7、useRef

useRef用于在函數(shù)組件中引用DOM元素或其他值。
它返回一個包含可變引用的對象。當(dāng)在函數(shù)組件中傳遞該對象時,它將保留其引用,即使組件重新渲染。

import React, { useRef } from 'react';

function Input() {
  const inputRef = useRef(null);

  function handleClick() {
    inputRef.current.focus();
  }

  return (
    <>
      <input ref={inputRef} />
      <button onClick={handleClick}>Focus input</button>
    </>
  );
}

以上是React的每個Hooks的使用場景和示例。這些Hooks可以幫助我們更加方便地管理狀態(tài)和生命周期,并且提高代碼的可讀性和可維護性。

總結(jié)

useState:用于在函數(shù)組件中管理狀態(tài)??梢杂糜诟櫤透陆M件的內(nèi)部狀態(tài),例如表單輸入、開關(guān)狀態(tài)、計數(shù)器等。

useEffect:用于處理副作用操作,例如數(shù)據(jù)獲取、訂閱事件、DOM操作等??梢栽诮M件渲染后執(zhí)行一些操作,也可以在組件卸載前進行清理操作。

useContext:用于在組件之間共享數(shù)據(jù)??梢詣?chuàng)建一個全局的上下文,并在組件樹中的多個組件中訪問和更新該上下文。

useReducer:用于管理復(fù)雜的狀態(tài)邏輯??梢杂糜谔娲鷘seState,特別適用于具有復(fù)雜狀態(tài)轉(zhuǎn)換的組件,例如有限狀態(tài)機、游戲狀態(tài)等。

useCallback:用于性能優(yōu)化??梢跃彺婧瘮?shù)實例,以便在依賴項不變的情況下避免不必要的函數(shù)重新創(chuàng)建,提高組件的性能。

useMemo:用于性能優(yōu)化??梢跃彺嬗嬎憬Y(jié)果,以便在依賴項不變的情況下避免重復(fù)計算,提高組件的性能。

useRef:用于在函數(shù)組件中保存可變值的引用??梢杂糜诒4鍰OM元素的引用、保存上一次渲染的值等。文章來源地址http://www.zghlxwxcb.cn/news/detail-495646.html

到了這里,關(guān)于React的7個常用Hooks及使用場景(含示例)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Vue3 - hooks 功能模塊抽離示例(項目開發(fā)常用)

    在 vue3 項目開發(fā)中,功能模塊或頁面 / 組件邏輯都避免不了 hooks,充分利用它會使項目代碼耦合較低、復(fù)用性更強、易維護等。 本文 提供 vue3 真實項目開發(fā)中,最常見的 hooks 功能抽離示例, 按照此示例,可進行更多場景的舉一反三。 新手小白一看就懂,秒知 hooks 的概念和

    2024年02月13日
    瀏覽(21)
  • 【小程序開發(fā)必備】微信小程序常用API全介紹,附示例代碼和使用場景

    【小程序開發(fā)必備】微信小程序常用API全介紹,附示例代碼和使用場景

    ?創(chuàng)作者:全棧弄潮兒 ?? 個人主頁: 全棧弄潮兒的個人主頁 ??? 個人社區(qū),歡迎你的加入:全棧弄潮兒的個人社區(qū) ?? 專欄地址:小程序從入門到精通 【分享幾個國內(nèi)免費可用的ChatGPT鏡像】 【10幾個類ChatGPT國內(nèi)AI大模型】 【用《文心一言》1分鐘寫一篇博客簡直yyds】

    2023年04月09日
    瀏覽(30)
  • React Hooks 基本使用

    class 組件如果業(yè)務(wù)復(fù)雜,很難拆分和重構(gòu),很難測試;相同業(yè)務(wù)邏輯分散到各個方法中,邏輯混亂 邏輯復(fù)用像 HOC 、 Render Props ,不易理解,學(xué)習(xí)成本高 React 提倡函數(shù)式編程,函數(shù)更易拆分,更易測試 但是函數(shù)組件太簡單,為了增強函數(shù)組件的功能,媲美 class 組件: 函數(shù)組

    2024年01月21日
    瀏覽(59)
  • React Hooks 詳細使用介紹

    useState 是 React 中的一個基礎(chǔ) Hook,允許你在不使用 class 組件的情況下管理組件狀態(tài)。 參數(shù) 初始值 你可以直接傳遞狀態(tài)的初始值給 useState : 使用函數(shù)設(shè)置初始值 當(dāng)初始化狀態(tài)代價較大時,你可以傳遞一個函數(shù): 返回值 useState 返回一個數(shù)組,其中包括當(dāng)前狀態(tài)值和一個更新

    2024年02月13日
    瀏覽(20)
  • react中hooks的理解與使用

    react中hooks的理解與使用

    一、作用 我們知道react組件有兩種寫法一種是類組件,另一種是函數(shù)組件。而函數(shù)組件是無狀態(tài)組件,如果我們要想改變組件中的狀態(tài)就無法實現(xiàn)了。為此,在react16.8版本后官方推出hooks,用于函數(shù)組件更改狀態(tài)。 二、常用API 1、useState :存儲變量和修改變量 用法: 有兩個參

    2024年02月13日
    瀏覽(24)
  • React - Redux Hooks的使用細節(jié)詳解

    Redux中Hooks介紹 在之前的redux開發(fā)中,為了讓組件和redux結(jié)合起來,我們使用了react-redux庫中的connect : 但是這種方式必須使用高階函數(shù)結(jié)合返回的高階組件; 并且必須編寫:mapStateToProps和 mapDispatchToProps映射的函數(shù), 具體使用方式在前面文章有講解; 在Redux7.1開始,提供了Hook的方式

    2024年02月02日
    瀏覽(15)
  • React Hooks的useState、useRef使用

    React Hooks 是 React 16.8 版本引入的新特性,它允許你在不編寫 class 的情況下使用 state 和其他 React 特性。其中, useState ?和? useRef ?是兩個常用的 Hooks。 1. useState useState ?是一個允許你在函數(shù)組件中添加 state 的 Hook。 使用說明: useState ?返回一個狀態(tài)變量和一個設(shè)置該變量的函

    2024年02月02日
    瀏覽(22)
  • react 【七】各種hooks的使用/SPA的缺點

    react 【七】各種hooks的使用/SPA的缺點

    依然需要在index.js使用context 1.8.1 ref綁定dom 1.8.2 ref解決閉包缺陷 1.11.1 什么是自定義Hook 1.11.2 Context的共享 Hook 1.11.3 獲取鼠標(biāo)滾動位置 1.11.4 storage SPA頁面 1、不利于SEO優(yōu)化搜索引擎優(yōu)化 2、首屏渲染速度慢 1、不利于SEO優(yōu)化搜索引擎優(yōu)化 例如百度頁面在進行收錄的時候 是

    2024年02月20日
    瀏覽(22)
  • 【《React Hooks實戰(zhàn)》——指導(dǎo)你使用hook開發(fā)性能優(yōu)秀可復(fù)用性高的React組件】

    【《React Hooks實戰(zhàn)》——指導(dǎo)你使用hook開發(fā)性能優(yōu)秀可復(fù)用性高的React組件】

    使用React Hooks后,你很快就會發(fā)現(xiàn),代碼變得更具有組織性且更易于維護。React Hooks是旨在為用戶提供跨組件的重用功能和共享功能的JavaScript函數(shù)。利用React Hooks, 可以將組件分成多個函數(shù)、管理狀態(tài)和副作用,并且不必聲明類即可調(diào)用React內(nèi)置的功能。而且,上述所有的操作

    2024年02月14日
    瀏覽(24)
  • react之Hooks的介紹、useState與useEffect副作用的使用

    Hooks 是 React v16.8 中的新增功能 為函數(shù)組件提供狀態(tài)、生命周期等原本 class 組件中提供的 React 功能 可以理解為通過 Hooks 為函數(shù)組件鉤入 class 組件的特性 注意:Hooks 只能在函數(shù)組件中使用,自此,函數(shù)組件成為 React 的新寵兒 可以在項目中同時使用hooks和class 一個 Hook 就是一

    2024年02月12日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包