欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

React中useState的理解和使用案例

 更新時間:2024年03月13日 10:50:55   作者:0yizhiyang  
Hook是React16.8的新增特性,它可以讓你在不編寫class的情況下使用state以及其他的React特性,本文中講解的useState就是React中的其中一個Hook,這篇文章主要給大家介紹了關于React中useState理解和使用的相關資料,需要的朋友可以參考下

一、useState的作用

在函數(shù)組件中的this指向在react中是undefined,使用useState可以使組件state狀態(tài), 并進行狀態(tài)數(shù)據(jù)的讀寫操作

作用:給函數(shù)組件提供數(shù)據(jù)

語法:const [xxx, setXxx] = React.useState(initValue)

useState()說明:
  • 參數(shù)(initValue): 第一次初始化指定的值在內(nèi)部作緩存
  • 返回值([xxx, setXxx]): 包含2個元素的數(shù)組, 第1個為內(nèi)部當前狀態(tài)值, 第2個為更新狀態(tài)值的函數(shù)
setXxx()2種寫法:
  • setXxx(newValue): 參數(shù)為非函數(shù)值, 直接指定新的狀態(tài)值, 內(nèi)部用其覆蓋原來的狀態(tài)值
  • setXxx(value => newValue): 參數(shù)為函數(shù), 接收原本的狀態(tài)值, 返回新的狀態(tài)值, 內(nèi)部用其覆蓋原來的狀態(tài)值

二、useState的使用

1. 定義組件變量

	// useState給當前的組件提供數(shù)據(jù) 相當于class組件 this.state={}
	import React,{useState} from 'react'
	
	// 一、 定義組件變量
	// 參數(shù)一: 定義的變量 參數(shù)二:定義修改變量的方法   useState(0):初始值,相當于num=10
	const [count, setState] = useState(0)
	const [name, setName] = useState('tome')

2. 使用變量{變量名稱}

    {/* 二、使用變量{變量名稱} */}
    <h2>當前求和為:{count}</h2>
    <button onClick={add}>點我+1</button> <br />
    <h2>我的名字是:{name}</h2>
    <button onClick={changeName}>點我改名</button>

3. 函數(shù)修改state數(shù)據(jù) 合并操作,執(zhí)行最后一次

 // 三、函數(shù)修改state數(shù)據(jù) 合并操作,執(zhí)行最后一次
  function add(){
    // setState(count+1)         //第一種寫法: 對值直接操作
    setState(count => count+1)   //第二種寫法:回調(diào)函數(shù)
  }

  const changeName = () => {
    // 定義變量--定義修改的方法
    setName('jack')
  }

4. 合并操作 執(zhí)行最后一次

   //宏任務  直接渲染4
    setTimeout(()=>{
        setState(count+4)
    },0)
    //微任務   直接打印 5
    Promise.resolve().then(res => {
      setState(count + 5)
    })

三、案例分析

1. 類組件的方法

import React, { Component } from 'react'

export default class Demo extends Component {
  state = { count: 1 }

  add = ()  =>{
    this.setState( state => ({count:state.count+1}))
  }
  render() {
    return (
      <div>
        <h1>當前求和為:{this.state.count}</h1>
        <button onClick={this.add}>點我+1</button>
      </div>
    )
  }
}

3. 函數(shù)組件的方法

import React, { useState } from 'react'
// useState給當前的組件提供數(shù)據(jù) 相當于class組件 this.state={}

export default function Demo() {
  // 一、 定義組件變量
  // 參數(shù)一: 定義的變量 參數(shù)二:定義修改變量的方法   useState(0):初始值,相當于num=10
  const [count, setState] = useState(0)
  const [name, setName] = useState('tome')

  // 三、函數(shù)修改state數(shù)據(jù) 合并操作,執(zhí)行最后一次
  function add() {
    // setState(count+1)         //第一種寫法: 對值直接操作
    setState(count => count + 1)   //第二種寫法:回調(diào)函數(shù)

    // //宏任務  直接渲染4
    // setTimeout(()=>{
    //     setState(count+4)
    // },0)
    // //微任務   直接打印 5
    // Promise.resolve().then(res => {
    //   setState(count + 5)
    // })
  }

  const changeName = () => {
    // 定義變量--定義修改的方法
    setName('jack')
  }
  return (
    <div>
      {/* 二、使用變量{變量名稱} */}
      <h2>當前求和為:{count}</h2>
      <button onClick={add}>點我+1</button> <br />
      <h2>我的名字是:{name}</h2>
      <button onClick={changeName}>點我改名</button>
    </div>
  )
}

總結(jié) 

到此這篇關于React中useState理解和使用案例的文章就介紹到這了,更多相關React useState使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • React組件渲染后對DOM的操作方式

    React組件渲染后對DOM的操作方式

    這篇文章主要介紹了React組件渲染后對DOM的操作方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 關于react中列表渲染的局部刷新問題

    關于react中列表渲染的局部刷新問題

    這篇文章主要介紹了關于react中列表渲染的局部刷新問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 淺談react-router HashRouter和BrowserRouter的使用

    淺談react-router HashRouter和BrowserRouter的使用

    本篇文章主要介紹了淺談react-router HashRouter和BrowserRouter的使用,具有一定的參考價值,有興趣的可以了解一下
    2017-12-12
  • next-redux-wrapper使用細節(jié)及源碼分析

    next-redux-wrapper使用細節(jié)及源碼分析

    這篇文章主要為大家介紹了next-redux-wrapper使用細節(jié)及源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • 基于react框架使用的一些細節(jié)要點的思考

    基于react框架使用的一些細節(jié)要點的思考

    下面小編就為大家?guī)硪黄趓eact框架使用的一些細節(jié)要點的思考。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 關于react-router-dom路由入門教程

    關于react-router-dom路由入門教程

    這篇文章主要介紹了關于react-router-dom路由入門教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • react底層的四大核心內(nèi)容架構(gòu)詳解

    react底層的四大核心內(nèi)容架構(gòu)詳解

    這篇文章主要為大家詳細介紹了react四大核心內(nèi)容架構(gòu),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • D3.js(v3)+react 實現(xiàn)帶坐標與比例尺的柱形圖 (V3版本)

    D3.js(v3)+react 實現(xiàn)帶坐標與比例尺的柱形圖 (V3版本)

    這篇文章主要介紹了D3.js(v3)+react 制作 一個帶坐標與比例尺的柱形圖 (V3版本) ,本文通過實例代碼文字相結(jié)合的形式給大家介紹的非常詳細,需要的朋友可以參考下
    2019-05-05
  • react中常見hook的使用方式

    react中常見hook的使用方式

    這篇文章主要介紹了react中常見hook的使用方式與區(qū)別,幫助大家更好的理解和學習使用react,感興趣的朋友可以了解下
    2021-04-04
  • 詳解React組件卸載怎么中止遞歸方法

    詳解React組件卸載怎么中止遞歸方法

    最近在處理項目代碼的時候,出現(xiàn)了一個bug,組件中的方法在組件卸載后仍然在執(zhí)行,代碼片段發(fā)給我看,但是變量的用意我也不懂,只看到有方法調(diào)用自身方法,這不就是遞歸嘛,所以本文詳細給大家介紹了React組件卸載怎么中止遞歸方法,需要的朋友可以參考下
    2024-01-01

最新評論