最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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): 第一次初始化指定的值在內部作緩存
  • 返回值([xxx, setXxx]): 包含2個元素的數(shù)組, 第1個為內部當前狀態(tài)值, 第2個為更新狀態(tài)值的函數(shù)
setXxx()2種寫法:
  • 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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

毕节市| 方正县| 咸阳市| 镇宁| 镇宁| 龙海市| 临桂县| 拜泉县| 安塞县| 凌云县| 温泉县| 正宁县| 南溪县| 彰化市| 垫江县| 清原| 互助| 津市市| 体育| 沁水县| 东海县| 长顺县| 永济市| 南木林县| 吴川市| 九龙县| 垫江县| 上思县| 宾阳县| 连城县| 涟源市| 肇源县| 海安县| 顺义区| 长治市| 城步| 湄潭县| 芜湖县| 宝清县| 馆陶县| 海丰县|