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

React Hook - useState函數(shù)的詳細(xì)解析

這篇具有很好參考價值的文章主要介紹了React Hook - useState函數(shù)的詳細(xì)解析。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

useState的詳細(xì)解析

在上一篇文章中, 我用到useState來讓大家體驗一下hooks函數(shù)

import { memo, useState } from "react"

const Counter2 = memo(() => {
  const [counter, setCounter] = useState(100)
  
  return (
    <div>
      <h2>當(dāng)前計數(shù): {counter}</h2>
      <button onClick={() => setCounter(counter - 1)}>-1</button>
      <button onClick={() => setCounter(counter + 1)}>+1</button>
    </div>
  )
})

export default Counter2

那么接下來我們來先研究一下上面核心的一段代碼代表什么意思

useState來自react,需要從react中導(dǎo)入,是一個hook函數(shù), 官方中也將它成為State Hook, 它與class組件里面的 this.state 提供的功能完全相同;

一般來說,在函數(shù)退出后變量就會”消失”,而 state 中的變量會被 React 保留。

useState只有一個參數(shù): 接收一個初始化狀態(tài)的值(設(shè)置初始值),在第一次組件被調(diào)用時使用來作為初始化值(如果不設(shè)置則默認(rèn)為undefined);

useState的返回值: 返回一個數(shù)組,數(shù)組包含兩個元素;

  • 元素一: 當(dāng)前狀態(tài)的值(第一次調(diào)用為初始化值);
  • 元素二: 是一個設(shè)置狀態(tài)值變化的函數(shù);
  • 不過我們?nèi)绻偸鞘褂盟饕齺慝@取這兩個元素總是不方便的, 因此在開發(fā)中我們通常是會對數(shù)組進行解構(gòu)(當(dāng)然要取什么名字是自定義的)
  • 例如上面代碼: const [counter, setCounter] = useState(100)

上面代碼中, 點擊button按鈕后,會完成兩件事情:

調(diào)用元素二: setCounter,設(shè)置一個新的值;

組件重新渲染,并且根據(jù)新的值返回DOM結(jié)構(gòu);

相信通過上面的一個簡單案例,你已經(jīng)會喜歡上Hook的使用了

Hook 就是 JavaScript 函數(shù),這個函數(shù)可以幫助你鉤入(hook into) React State以及生命周期等特性;

但是使用它們會有兩個額外的規(guī)則:

只能在函數(shù)組件的頂層調(diào)用 Hook。不能在循環(huán)語句、條件判斷語句或者子函數(shù)中調(diào)用。

只能在 React 的函數(shù)組件自定義hook中調(diào)用 Hook。不能在其他 JavaScript 函數(shù)中調(diào)用。

Tip

Hook 指的類似于useState、這樣的某一個函數(shù)

Hooks 是對這一類函數(shù)的統(tǒng)稱

大家可能有疑惑: 為什么叫 useState 而不叫 createState?

“create” 可能不是很準(zhǔn)確,因為 state 只在組件首次渲染 的時候才會被創(chuàng)建。

在下一次重新渲染時,就已經(jīng)不是創(chuàng)建了, useState 會返回給我們當(dāng)前所保存的state(如果每次都創(chuàng)建新的變量,它就不是 “state”了)。

這也是 Hook 的名字總是以 use 開頭的一個原因, 因為你總是在使用而不是創(chuàng)建。

當(dāng)然,我們也可以在一個組件中定義多個變量和復(fù)雜變量(數(shù)組、對象)文章來源地址http://www.zghlxwxcb.cn/news/detail-822559.html

import React, { memo, useState } from 'react'

const App = memo(() => {
  // 簡單數(shù)據(jù)
  const [counter, setCounter] = useState(10)
  const [message, setMessage] = useState("Hello World")
  // 復(fù)雜數(shù)據(jù)
  const [banners, setBanners] = useState(["aaa", "bbb", "ccc"])
  const [infos, setInfos] = useState({
    name: "chenyq",
    age: 18,
    height: 1.88
  })
  
  function changeNumber() {
    setCounter(counter + 1)
  }

  return (
    <div>
      <h2>{counter}</h2>
      <button onClick={changeNumber}>+1</button>
      <h2>{message}</h2>
      <h2>{banners}</h2>
      <h2>{infos.name}-{infos.age}-{infos.height}</h2>
    </div>
  )
})

export default App

到了這里,關(guān)于React Hook - useState函數(shù)的詳細(xì)解析的文章就介紹完了。如果您還想了解更多內(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)文章

  • React -- useState使用方法

    userState 是一個React Hook (函數(shù))。它允許我們向組件添加一個狀態(tài)變量,從而控制影響組件的渲染結(jié)果 1. useState是一個函數(shù),返回值是一個數(shù)組 2. 數(shù)組中第一個參數(shù)是狀態(tài)變量,第二個參數(shù)是set開頭的函數(shù)名,用于修改變量 3. useState的參數(shù)作為count的初始值 4.使用舉例

    2024年02月19日
    瀏覽(21)
  • [react] useState的一些小細(xì)節(jié)

    [react] useState的一些小細(xì)節(jié)

    因為setState修改是異步的,加上會觸發(fā)函數(shù)重新渲染, 如果代碼長這樣 ?一秒再修改,然后重新觸發(fā)setTImeout, 然后再觸發(fā),重復(fù)觸發(fā)循環(huán) 如果這樣呢 還是會,因為你執(zhí)行又會重新渲染? 為什么修改多次還是跟不上呢? 因為是異步修改 ,所以會出現(xiàn)問題,怎么辦?用傳函數(shù)的形式解決 C

    2024年04月13日
    瀏覽(26)
  • react中的useState和useImmer的用法

    react中的useState和useImmer的用法

    react中文官網(wǎng)教程 在函數(shù)式組件中,可以使用 useState 這個 Hook 來定義和管理組件的狀態(tài)。 useState 接受一個初始狀態(tài)作為參數(shù),并返回一個包含 state 和更新 state 的方法的數(shù)組。 下面是一個例子,展示了如何在函數(shù)式組件中定義自己的 state: 在上面的例子中,我們使用 useStat

    2024年02月07日
    瀏覽(21)
  • 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如何處理setState,useState異步問題

    flushSync 是 React 提供的一種實驗性的 API,用于控制 React 更新的同步/異步方式,并且只能在 React 16 及更高版本中使用。使用 flushSync 可以強制 React 在執(zhí)行一些特定的 DOM 操作時,同步地(而非異步地)執(zhí)行分塊更新,從而保證消息優(yōu)先級和交互響應(yīng)性能。 通常情況下,React 采

    2024年02月11日
    瀏覽(17)
  • react中useState、setState、usemeno、meno區(qū)別

    useState和setState是異步 useState : useState 是React函數(shù)組件中的鉤子,用于聲明狀態(tài)變量。 通過 useState ,你可以在函數(shù)組件中添加狀態(tài),而無需創(chuàng)建類組件。 useState 返回一個數(shù)組,其中包含當(dāng)前狀態(tài)和一個更新狀態(tài)的函數(shù) setState : setState 是類組件中用于更新狀態(tài)的方法。 在類

    2024年02月22日
    瀏覽(22)
  • react18中,useState 和 useEffect有什么區(qū)別

    useState 目的:useState用于在函數(shù)組件中添加狀態(tài)。之前,只有類組件才能有自己的狀態(tài),但useState鉤子使得函數(shù)組件也能夠利用React的狀態(tài)特性。 使用場景:當(dāng)你需要在組件中存儲、讀取或更新一些數(shù)據(jù)時使用。例如,控制輸入框的內(nèi)容、切換按鈕的狀態(tài)等。 工作原理:useS

    2024年02月19日
    瀏覽(28)
  • react中useState的值沒有改變,而是舊的數(shù)值

    react中useState的值沒有改變,而是舊的數(shù)值

    想實現(xiàn)點擊按鈕就改變數(shù)據(jù)的效果,但是在控制臺的打印結(jié)果,總是上一次的修改情況,并不是最新的修改后的數(shù)據(jù) 代碼: 在 React 中, useState 是一個異步更新狀態(tài)的 Hook,因此在調(diào)用 setAName 更新狀態(tài)后, sonAName 并不會立即改變,而是會在下一次渲染時才會更新。 因此,在

    2024年04月26日
    瀏覽(21)
  • react useState useEffect useMemo實際業(yè)務(wù)場景中的使用

    react useState useEffect useMemo實際業(yè)務(wù)場景中的使用

    下面的代碼實現(xiàn)了上面圖片的功能

    2024年02月16日
    瀏覽(25)
  • 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)紅包