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

React Hooks的講解與教程

這篇具有很好參考價(jià)值的文章主要介紹了React Hooks的講解與教程。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

什么是React Hooks

React Hooks 是 React 16.8 新增的一種特性,它可以讓你在函數(shù)式組件中使用 state、生命周期、context 等 React 特性。Hooks 可以讓你將復(fù)雜的邏輯拆分成多個(gè)獨(dú)立可重用的函數(shù),并且使得這些函數(shù)更加易于理解和測(cè)試。

Class組件存在的問(wèn)題

  1. 復(fù)雜度高:類組件的定義和使用更加復(fù)雜繁瑣。在類組件中,需要繼承 React.Component 類,并且還要管理 this 指針、生命周期等,這使得代碼變得冗長(zhǎng)且難以理解。

  2. 嵌套層數(shù)過(guò)多:在傳統(tǒng) class 組件編寫方式中,為了實(shí)現(xiàn)一些復(fù)雜邏輯或者 UI 界面,在不同生命周期函數(shù)中進(jìn)行數(shù)據(jù)更新等操作容易導(dǎo)致代碼嵌套層數(shù)過(guò)多、閱讀性差,并且增加額外的復(fù)雜度和深度嵌套。

  3. 對(duì)功能模塊封裝比較困難:對(duì)于某個(gè)特定的功能模塊或業(yè)務(wù)邏輯而言,在類組件內(nèi)部如果想要將其封裝成一個(gè)獨(dú)立的方法或者函數(shù),則往往需要定義私有屬性或方法來(lái)實(shí)現(xiàn)封裝。然而這樣增加了代碼耦合性并降低了可重用性。

  4. 不利于優(yōu)化:由于 React 生命周期方法是按順序執(zhí)行的,因此在 componentDidMount 中做出昂貴計(jì)算可能會(huì)影響首次渲染時(shí)間。即使我們可以使用 shouldComponentUpdate 和 PureComponent 來(lái)減少重新渲染次數(shù), 但仍然無(wú)法避免當(dāng) props 和 state 變化時(shí)帶來(lái)的重新渲染。

React Hooks的優(yōu)勢(shì)?

React Hooks 的出現(xiàn)主要是為了解決 React Class組件的缺陷,并且讓我們的函數(shù)組件也可以擁有類似于類組件的狀態(tài)管理和副作用處理能力。

  1. 更簡(jiǎn)單的實(shí)現(xiàn)代碼復(fù)用:在React Hooks出現(xiàn)之前,我們想要實(shí)現(xiàn)代碼邏輯的復(fù)用需要使用到高階組件、render props 等技術(shù)來(lái)幫助我們完成,但這樣會(huì)增加額外的復(fù)雜度和深度嵌套,而 Hook 可以更輕松地實(shí)現(xiàn)代碼邏輯的重用。

  2. 使代碼邏輯更清晰:在傳統(tǒng)的 class 組件編寫方式中,在不同生命周期函數(shù)中進(jìn)行數(shù)據(jù)更新時(shí)容易導(dǎo)致代碼難以理解和維護(hù)。Hook 可以讓你將相關(guān)業(yè)務(wù)邏輯放到同一個(gè)函數(shù)內(nèi)部,從而提高可讀性并減少了模塊之間相互影響帶來(lái)風(fēng)險(xiǎn)。

  3. 更便于大規(guī)模開(kāi)發(fā)與測(cè)試:通過(guò)使用 Hook ,React 組件變成純粹聲明式渲染效果, 并且對(duì)應(yīng)該渲染結(jié)果只由 Props 和 State 決定, 這種特點(diǎn)使得 React 開(kāi)發(fā)者傾向于采取函數(shù)式編程(Functional Programming)范例去建立 UI.

  4. 更加靈活和自由 :Hooks 提供了很多新特性例如 state、useEffect、useContext 等,使得函數(shù)組件擁有了更多的功能和使用場(chǎng)景,并且可以自由地將這些 Hook 組合在一起以實(shí)現(xiàn)各種需求。

Hook的出現(xiàn),可以解決我們Class組件存在的這些問(wèn)題,它可以讓我們?cè)诓痪帉慶lass的情況下使用state以及其他的React特性。

注意:Hook只能在函數(shù)組件中使用,不能在類組件,或者函數(shù)組件之外的地方使用

Class組件和Functional組件對(duì)比

React Hooks的講解與教程

State Hook的API

useState

作用

useState,它可以幫助我們?cè)诤瘮?shù)式組件中管理狀態(tài)。

語(yǔ)法

const [state, setState] = useState(initialState);
  • state: 表示當(dāng)前的狀態(tài)值。
  • setState: 是一個(gè)更新 state 值的函數(shù),調(diào)用該函數(shù)會(huì)重新渲染組件并更新?tīng)顟B(tài)。

參數(shù)

  • initialState: 表示 state 的初始值??梢允侨魏蔚念愋停鐢?shù)字、字符串、數(shù)組或?qū)ο蟮取?/li>

返回值

  • 數(shù)組:包含兩個(gè)元素 [state, setState]

使用方法

定義了一個(gè)計(jì)數(shù)器組件,使用了 useState 來(lái)初始化 count 狀態(tài),并且通過(guò) setCount 函數(shù)來(lái)更新 count 狀態(tài)。當(dāng)用戶點(diǎn)擊 Increment 按鈕時(shí),就會(huì)觸發(fā) increment 函數(shù)并將 count 增加一次。在此過(guò)程中,React 自動(dòng)檢測(cè)到狀態(tài)變化,并重新渲染頁(yè)面以顯示最新結(jié)果。

import React, { useState } from "react";

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

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

  return (
    <div>
      <h1>Counter: {count}</h1>
      <button onClick={increment}>Increment</button>
    </div>
  );
}

export default Counter;

Effect

作用

useEffect 它可以讓我們?cè)诤瘮?shù)式組件中執(zhí)行副作用操作(例如:從服務(wù)器獲取數(shù)據(jù)、手動(dòng)更新 DOM 等)。

語(yǔ)法

useEffect(effect, dependencies);
  • effect:表示要執(zhí)行的副作用函數(shù)。
  • dependencies:表示 useEffect 需要監(jiān)測(cè)變化的依賴項(xiàng)數(shù)組。

參數(shù)

  • effect: 副作用函數(shù)。該函數(shù)會(huì)在每次渲染時(shí)都被調(diào)用,并且可以根據(jù)需要返回清理函數(shù)。如果不需要清理,則應(yīng)該返回 undefined 或者空函數(shù)。
  • dependencies: 可選參數(shù),傳入一個(gè)數(shù)組來(lái)指定監(jiān)測(cè)哪些狀態(tài)/屬性變化而觸發(fā)副作用操作。

返回值

無(wú)返回值。

使用方法

import React, { useState, useEffect } from "react";
import axios from "axios";

function App() {
  const [data, setData] = useState([]);

  useEffect(() => {
    async function fetchData() {
      const result = await axios("https://jsonplaceholder.typicode.com/posts");
      setData(result.data);
    }
    fetchData();
  }, []);

  return (
    <div>
      <h1>Posts</h1>
      <ul>
        {data.map((post) => (
          <li key={post.id}>{post.title}</li>
        ))}
      </ul>
    </div>
  );
}

export default App;

在上面的代碼示例中我們定義了一個(gè)簡(jiǎn)單的應(yīng)用程序,我們使用了 useState 來(lái)初始化 data 狀態(tài),并且在 useEffect 中使用 axios 庫(kù)從服務(wù)器獲取數(shù)據(jù)。當(dāng)數(shù)據(jù)加載完成時(shí),我們使用 setData 函數(shù)更新 data 狀態(tài),并且通過(guò) map 方法將每個(gè)帖子的標(biāo)題顯示為列表項(xiàng)。在此過(guò)程中,React 自動(dòng)檢測(cè)到狀態(tài)變化,并重新渲染頁(yè)面以顯示最新結(jié)果。

useContext

作用

useContext 它可以讓我們?cè)诮M件樹(shù)中跨層級(jí)傳遞數(shù)據(jù),避免了繁瑣的 props 傳遞。

用法

首先,我們需要?jiǎng)?chuàng)建一個(gè) Context 對(duì)象來(lái)存儲(chǔ)要共享的數(shù)據(jù):

// MyContext.js

import React from "react";

const MyContext = React.createContext();

export default MyContext;

然后,在父組件中設(shè)置共享數(shù)據(jù),并將其作為 value 屬性傳遞給 Context.Provider 組件:

// App.js

import React, { useState } from "react";
import MyContext from "./MyContext";
import ChildComponent from "./ChildComponent";

function App() {
  const [name, setName] = useState("John");

  return (
    <div>
      <h1>Hello, {name}!</h1>
      <MyContext.Provider value={name}>
        <ChildComponent />
      </MyContext.Provider>
    </div>
  );
}

export default App;

這里我們使用了 useState 來(lái)定義狀態(tài)變量 name 和用于更新該變量的函數(shù) setName。然后將其作為值傳遞給 Context。

接下來(lái),在子組件中使用 useContext Hook 來(lái)獲取共享數(shù)據(jù)并進(jìn)行展示:

// ChildComponent.js

import React, { useContext } from "react";
import MyContexct from "./MyContexct";

function ChildComponent() {
  const name = useContext(MyContexct);

  return (
    <div>
      <h2>Child Component</h2>
      <p>{name}, how are you doing?</p>
    </div>
  );
}

export default ChildComponent;

如上述代碼所示,我們可以通過(guò) useContext Hook 來(lái)獲取 Context 中的共享數(shù)據(jù),并將其命名為 name。然后在組件中展示該數(shù)據(jù)。

最終,當(dāng)我們運(yùn)行這個(gè)應(yīng)用程序時(shí),它將顯示一個(gè)包含 "Hello, John!""John, how are you doing?" 的頁(yè)面。

注意:到子組件無(wú)需通過(guò) props 獲取父組件的狀態(tài)變量值即可訪問(wèn)該值。

useReducer

作用

useReducer 它可以幫助我們使用 reducer 函數(shù)管理復(fù)雜的組件狀態(tài)。

用法

首先,我們需要定義一個(gè) reducer 函數(shù)來(lái)管理組件狀態(tài)。該函數(shù)接收兩個(gè)參數(shù):當(dāng)前狀態(tài)(state)和更新該狀態(tài)所需的操作(action)。然后根據(jù) action 的類型進(jìn)行相應(yīng)的處理并返回新的 state。

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();
  }
}

在上面的代碼中,我們創(chuàng)建了一個(gè)名為 reducer 的函數(shù),并根據(jù)傳入的不同類型執(zhí)行相應(yīng)操作來(lái)更新組件狀態(tài)。

接下來(lái),在父組件中使用 useReducer Hook 來(lái)初始化和獲取共享數(shù)據(jù)以及 dispatch 方法:

import React, { useReducer } from "react";
import reducer from "./reducer";

function App() {
  const [state, dispatch] = useReducer(reducer, { count: 0 });

  function increment() {
    dispatch({ type: "INCREMENT" });
  }

  function decrement() {
    dispatch({ type: "DECREMENT" });
  }

  return (
    <div>
      <h2>Count:{state.count}</h2>
        <button onClick={increment}>Increment</button>
        <button onClick={decrement}>Decrement</button>
     </div>
   );
}

export default App;

如上述代碼所示,通過(guò)調(diào)用 useReducer Hook,我們可以獲取到當(dāng)前的狀態(tài)(state)和 dispatch 方法。其中第一個(gè)參數(shù)是 reducer 函數(shù),第二個(gè)參數(shù)是初始狀態(tài)值。在這里我們使用了 { count: 0 } 作為初始 state 值。

然后在父組件中定義兩個(gè)函數(shù):increment 和 decrement,它們分別調(diào)用 dispatch({ type: "INCREMENT" })dispatch({ type: "DECREMENT" }) 來(lái)更新共享數(shù)據(jù)。

最終,在返回的 JSX 中展示當(dāng)前計(jì)數(shù)器的值并添加增加/減少按鈕來(lái)觸發(fā)對(duì)應(yīng)操作即可。

useCallback

作用

useCallback 它可以幫助我們優(yōu)化性能并避免不必要的重新渲染。

用法

首先,我們需要理解什么是函數(shù)記憶。在 JavaScript 中,如果兩個(gè)相同參數(shù)值之間存在對(duì)應(yīng)關(guān)系,則稱這些函數(shù)有“記憶”。因此,在進(jìn)行計(jì)算時(shí)使用已經(jīng)計(jì)算過(guò)的結(jié)果而不是再次運(yùn)行該函數(shù)以提高效率。

接下來(lái),請(qǐng)看如下代碼示例:

import React, { useState } from "react";

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

  function handleClick() {
    console.log("Clicked!");
    setCount(count + 1);
  }

  return (
    <div>
      <h2>Count: {count}</h2>
      <button onClick={handleClick}>Increment</button>
    </div>
   );
}

export default App;

上面的代碼中展示了一個(gè)簡(jiǎn)單的計(jì)數(shù)器組件,并且定義了一個(gè)名為 handleClick 的事件處理程序方法。當(dāng)點(diǎn)擊按鈕時(shí),會(huì)觸發(fā)該方法并更新內(nèi)部狀態(tài)以反映當(dāng)前值。

然而,在每次渲染組件時(shí)都會(huì)創(chuàng)建新的 handleClick 方法實(shí)例可能會(huì)導(dǎo)致一定程度上的性能問(wèn)題。這就是為什么我們需要使用 useCallback 來(lái)進(jìn)行優(yōu)化。

使用 useCallback 來(lái)改寫后:

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

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

  const handleClick = useCallback(() => {
    console.log("Clicked!");
    setCount(count + 1);
  }, [count]);

  return (
    <div>
      <h2>Count: {count}</h2>
      <button onClick={handleClick}>Increment</button>
    </div>
   );
}

export default App;

在上面的代碼中,我們使用了 useCallback 來(lái)緩存 handleClick 方法并根據(jù)需要更新它。這樣,在組件重新渲染時(shí)就不會(huì)創(chuàng)建新的實(shí)例,從而避免了性能問(wèn)題。

注意:第二個(gè)參數(shù) [count] 是依賴項(xiàng)數(shù)組。如果該值發(fā)生變化,則會(huì)觸發(fā)回調(diào)函數(shù)的重新計(jì)算和更新處理程序方法。

useMemo

作用

useMemo ,它可以幫助我們優(yōu)化性能并避免不必要的重新計(jì)算。

用法

首先,我們需要理解什么是記憶。在 JavaScript 中,如果兩個(gè)相同參數(shù)值之間存在對(duì)應(yīng)關(guān)系,則稱這些函數(shù)有“記憶”。因此,在進(jìn)行計(jì)算時(shí)使用已經(jīng)計(jì)算過(guò)的結(jié)果而不是再次運(yùn)行該函數(shù)以提高效率。

import React, { useState } from "react";

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

  function fibonacci(n) {
    if (n <= 1) return n;
    return fibonacci(n - 1) + fibonacci(n - 2);
  }

  const result = fibonacci(count);

  return (
    <div>
      <h2>Result: {result}</h2>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
   );
}

export default App;

上面的代碼中展示了一個(gè)簡(jiǎn)單的斐波那契數(shù)列組件,并且定義了一個(gè)名為 fibonacci 的遞歸方法。每當(dāng)用戶點(diǎn)擊按鈕時(shí)都會(huì)調(diào)用該方法以更新內(nèi)部狀態(tài)以反映當(dāng)前值。

然而,在每次渲染組件時(shí)都會(huì)重新計(jì)算斐波那契數(shù)列可能會(huì)導(dǎo)致一定程度上的性能問(wèn)題。這就是為什么我們需要使用 useMemo 來(lái)進(jìn)行優(yōu)化。

改寫后如下所示:

import React, { useState, useMemo } from "react";

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

  function fibonacci(n) {
    if (n <= 1) return n;
    return fibonacci(n - 1) + fibonacci(n - 2);
  }

  const result = useMemo(() => fibonacci(count), [count]);

  return (
    <div>
      <h2>Result: {result}</h2>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
   );
}

export default App;

在上面的代碼中,我們使用了 useMemo 來(lái)緩存斐波那契數(shù)列計(jì)算結(jié)果并根據(jù)需要更新它。這樣,在組件重新渲染時(shí)就不會(huì)重新計(jì)算該值,從而避免了性能問(wèn)題。

注意:第二個(gè)參數(shù) [count] 是依賴項(xiàng)數(shù)組。如果該值發(fā)生變化,則會(huì)觸發(fā)回調(diào)函數(shù)的重新計(jì)算和更新處理程序方法。

useRef

作用

useRef 它可以幫助我們?cè)诤瘮?shù)組件中保存可變值,并且不會(huì)導(dǎo)致組件重新渲染。

用法

import React, { useState } from "react";

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

  function handleAlertClick() {
    setTimeout(() => {
      alert(`You clicked ${count} times`);
    }, 3000);
  }

  return (
    <div>
      <h2>Count: {count}</h2>
      <button onClick={() => setCount(count + 1)}>Increment</button>
      <button onClick={handleAlertClick}>Show Alert</button>
    </div>
   );
}

export default App;

上面的代碼中展示了一個(gè)簡(jiǎn)單的計(jì)數(shù)器組件,并且定義了一個(gè)名為 handleAlertClick 的事件處理程序方法。當(dāng)用戶點(diǎn)擊“Show Alert”按鈕時(shí),該方法會(huì)等待三秒鐘然后顯示警告框以反映當(dāng)前值。

然而,在該三秒鐘內(nèi)如果用戶再次點(diǎn)擊“Increment”按鈕,則計(jì)數(shù)器將增加并且警告框仍將顯示舊的值。這就是因?yàn)槊看沃匦落秩窘M件時(shí)都創(chuàng)建了新的 count 變量實(shí)例。

改寫后如下所示:

import React, { useState, useRef } from "react";

function App() {
  const [count, setCount] = useState(0);
  
  const countRef = useRef(count);

  function handleAlertClick() {
    setTimeout(() => {
      alert(`You clicked ${countRef.current} times`);
    }, 3000);
  }

  return (
    <div>
      <h2>Count: {count}</h2>
      <button onClick={() => setCount(count + 1)}>Increment</button>
      <button onClick={handleAlertClick}>Show Alert</button>
    </div>
   );
}

export default App;

在上面的代碼中,我們使用了 useRef 來(lái)保存可變值,并且不會(huì)導(dǎo)致組件重新渲染。這樣,在每次重新渲染時(shí)都可以訪問(wèn)到最新的計(jì)數(shù)器值。

注意:需要將初始值傳遞給 useRef,并通過(guò) .current 屬性來(lái)讀寫該值。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-512873.html

到了這里,關(guān)于React Hooks的講解與教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • React Hooks ——性能優(yōu)化Hooks

    Hooks從語(yǔ)法上來(lái)說(shuō)是一些函數(shù)。這些函數(shù)可以用于在函數(shù)組件中引入狀態(tài)管理和生命周期方法。 簡(jiǎn)潔 從語(yǔ)法上來(lái)說(shuō),寫的代碼少了 上手非常簡(jiǎn)單 基于函數(shù)式編程理念,只需要掌握一些JavaScript基礎(chǔ)知識(shí) 與生命周期相關(guān)的知識(shí)不用學(xué),react Hooks使用全新的理念來(lái)管理組件的運(yùn)作

    2024年02月06日
    瀏覽(25)
  • React的hooks---自定義hooks

    通過(guò)自定義 Hook,可以將組件邏輯提取到可重用的函數(shù)中,在 Hook 特性之前,React 中有兩種流行的方式來(lái)共享組件之間的狀態(tài)邏輯: render props 和 高階組件 ,但此類解決方案會(huì)導(dǎo)致組件樹(shù)的層級(jí)冗余等問(wèn)題。而自定義 Hook 的使用可以很好的解決此類問(wèn)題 自定義 Hook 是一個(gè)函數(shù)

    2024年02月15日
    瀏覽(25)
  • 【React】React Hooks解析

    【React】React Hooks解析

    React 16.8 + 為什么需要Hook? Hook是 React 16.8 的新增特性,它可以讓我們?cè)诓痪帉慶lass的情況下使用state以及其他的React特性(比如生命周期) 我們先來(lái)思考一下class組件相對(duì)于函數(shù)式組件有什么優(yōu)勢(shì)?比較常見(jiàn)的是下面的優(yōu)勢(shì): class組件可以 定義自己的state ,用來(lái) 保存組件自己內(nèi)

    2024年02月11日
    瀏覽(24)
  • React自定義Hooks

    React自定義Hooks是一項(xiàng)強(qiáng)大而實(shí)用的功能,它可以幫助開(kāi)發(fā)者將邏輯和狀態(tài)從組件中抽離出來(lái),提高組件的可復(fù)用性和邏輯抽象能力。本論文將介紹React自定義Hooks的定義、使用方法和設(shè)計(jì)原則,分析其對(duì)函數(shù)式組件的優(yōu)化作用,并通過(guò)實(shí)例演示了如何使用自定義Hooks提高組件性

    2024年02月12日
    瀏覽(20)
  • React Hooks 實(shí)戰(zhàn)案例

    React Hooks 實(shí)戰(zhàn)案例

    React Hooks 是 React 16.8 版本引入的新特性,它使得在函數(shù)組件中也能夠使用狀態(tài)(state)和其他 React 特性。 在 React 之前的版本中,組件要么是函數(shù)組件,要么是類組件。函數(shù)組件可以使用純函數(shù)的方式編寫,但是沒(méi)有狀態(tài)(state)和其他 React 特性;類組件則可以擁有狀態(tài)和其

    2024年02月08日
    瀏覽(22)
  • React Hooks 基本使用

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

    2024年01月21日
    瀏覽(59)
  • React學(xué)習(xí)8 hooks

    1、setState setState更新數(shù)據(jù)是異步的,如果想獲取更新完的數(shù)據(jù),需要通過(guò)第二個(gè)參數(shù)回調(diào)函數(shù)來(lái)獲取 2、lazyLoad,用的時(shí)候再調(diào)用,不會(huì)預(yù)先調(diào)用,需要用suspence包裹注冊(cè)路由 3、stateHook userState 函數(shù)組件中使用state,通過(guò)調(diào)用React.useState()使用,該數(shù)組兩個(gè)變量,第一個(gè)存儲(chǔ)狀態(tài)

    2024年02月08日
    瀏覽(16)
  • react hooks

    功能:讓函數(shù)組件也可以有state狀態(tài), 并進(jìn)行狀態(tài)數(shù)據(jù)的讀寫操作 語(yǔ)法:const [xxx, setXxx] = React.useState(initValue) 參數(shù): 第一次初始化指定的值在內(nèi)部作緩存 返回值: 包含2個(gè)元素的數(shù)組, 第1個(gè)為內(nèi)部當(dāng)前狀態(tài)值, 第2個(gè)為更新?tīng)顟B(tài)值的函數(shù) setXxx()2種寫法: setXxx(newValue): 參數(shù)為非函數(shù)

    2024年02月05日
    瀏覽(15)
  • React Hooks解析

    1. react使用hook的意義 Hook 是 React 16.8 的新增特性,它可以讓我們?cè)诓痪帉慶lass的情況下使用state以及其他的React特性(比如生命周期)。 class組件與函數(shù)式組件: class組件可以 定義自己的state ,用來(lái) 保存組件自己內(nèi)部的狀態(tài), 函數(shù)式組件不可以,因?yàn)楹瘮?shù)每次調(diào)用都會(huì)產(chǎn)生新

    2024年02月08日
    瀏覽(28)
  • react中hooks分享

    react中hooks分享

    在計(jì)算機(jī)程序設(shè)計(jì)中,鉤子一詞涵蓋了一系列技術(shù),這些技術(shù)用來(lái)通過(guò)攔截函數(shù)調(diào)用、消息或在軟件組件之間傳遞的事件來(lái)改變或增加操作系統(tǒng)、應(yīng)用程序或其他軟件組件的行為。處理這些被截獲的函數(shù)調(diào)用、事件或消息的代碼稱為“hook”。 在react中,有兩種組件:類(cl

    2024年02月14日
    瀏覽(12)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包