React中useState的理解和使用案例
一、useState的作用
在函數(shù)組件中的
this指向在react中是undefined,使用useState可以使組件state狀態(tài), 并進行狀態(tài)數(shù)據(jù)的讀寫操作作用:給函數(shù)組件提供數(shù)據(jù)
語法:
useState()說明:const [xxx, setXxx] = React.useState(initValue)setXxx()2種寫法:
- 參數(shù)(initValue): 第一次初始化指定的值在內部作緩存
- 返回值([xxx, setXxx]): 包含2個元素的數(shù)組, 第1個為內部當前狀態(tài)值, 第2個為更新狀態(tài)值的函數(shù)
- setXxx(newValue): 參數(shù)為非函數(shù)值, 直接指定新的狀態(tài)值, 內部用其覆蓋原來的狀態(tài)值
- setXxx(value => newValue): 參數(shù)為函數(shù), 接收原本的狀態(tài)值, 返回新的狀態(tà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) //第二種寫法:回調函數(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) //第二種寫法:回調函數(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>
)
}

總結
到此這篇關于React中useState理解和使用案例的文章就介紹到這了,更多相關React useState使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解React Native開源時間日期選擇器組件(react-native-datetime)
本篇文章主要介紹了詳解React Native開源時間日期選擇器組件(react-native-datetime),具有一定的參考價值,有興趣的可以了解一下2017-09-09
ReactJs實現(xiàn)樹形結構的數(shù)據(jù)顯示的組件的示例
本篇文章主要介紹了ReactJs實現(xiàn)樹形結構的數(shù)據(jù)顯示的組件的示例,非常具有實用價值,需要的朋友可以參考下2017-08-08
react實現(xiàn)頭部導航,選中狀態(tài)底部出現(xiàn)藍色條塊問題
這篇文章主要介紹了react實現(xiàn)頭部導航,選中狀態(tài)底部出現(xiàn)藍色條塊問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
react-pdf實現(xiàn)將pdf文件轉為圖片,用于頁面展示
這篇文章主要介紹了react-pdf實現(xiàn)將pdf文件轉為圖片,用于頁面展示問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07
react中如何使用定義數(shù)據(jù)并監(jiān)聽其值
這篇文章主要介紹了react中如何使用定義數(shù)據(jù)并監(jiān)聽其值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
React不使用requestIdleCallback實現(xiàn)調度原理解析
這篇文章主要為大家介紹了React不使用requestIdleCallback實現(xiàn)調度原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11

