React中useState的理解和使用案例

 更新时间:2024年03月13日 10:50:55   作者:0yizhiyang  
Hook是React16.8的新增特性,它可以让你在不编写class的情况下使用state以及其他的React特性,本文中讲解的useState就是React中的其中一个Hook,这篇文章主要给大家介绍了关于React中useState理解和使用的相关资料,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

一、useState的作用

在函数组件中的this指向在react中是undefined,使用useState可以使组件state状态, 并进行状态数据的读写操作

作用:给函数组件提供数据

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

useState()说明:
  • 参数(initValue): 第一次初始化指定的值在内部作缓存
  • 返回值([xxx, setXxx]): 包含2个元素的数组, 第1个为内部当前状态值, 第2个为更新状态值的函数
setXxx()2种写法:
  • setXxx(newValue): 参数为非函数值, 直接指定新的状态值, 内部用其覆盖原来的状态值
  • setXxx(value => newValue): 参数为函数, 接收原本的状态值, 返回新的状态值, 内部用其覆盖原来的状态值

二、useState的使用

1. 定义组件变量

	// useState给当前的组件提供数据 相当于class组件 this.state={}
	import React,{useState} from 'react'
	
	// 一、 定义组件变量
	// 参数一: 定义的变量 参数二:定义修改变量的方法   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. 函数修改state数据 合并操作,执行最后一次

 // 三、函数修改state数据 合并操作,执行最后一次
  function add(){
    // setState(count+1)         //第一种写法: 对值直接操作
    setState(count => count+1)   //第二种写法:回调函数
  }

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

4. 合并操作 执行最后一次

   //宏任务  直接渲染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. 函数组件的方法

import React, { useState } from 'react'
// useState给当前的组件提供数据 相当于class组件 this.state={}

export default function Demo() {
  // 一、 定义组件变量
  // 参数一: 定义的变量 参数二:定义修改变量的方法   useState(0):初始值,相当于num=10
  const [count, setState] = useState(0)
  const [name, setName] = useState('tome')

  // 三、函数修改state数据 合并操作,执行最后一次
  function add() {
    // setState(count+1)         //第一种写法: 对值直接操作
    setState(count => count + 1)   //第二种写法:回调函数

    // //宏任务  直接渲染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使用内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • Ant Design与Ant Design pro入门使用教程

    Ant Design与Ant Design pro入门使用教程

    Ant Design 是一个服务于企业级产品的设计体系,组件库是它的 React 实现,antd 被发布为一个 npm 包方便开发者安装并使用,这篇文章主要介绍了Ant Design与Ant Design pro入门,需要的朋友可以参考下
    2023-12-12
  • 基于React实现倒计时功能

    基于React实现倒计时功能

    这篇文章主要为大家详细介绍了如何基于React实现倒计时功能,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下
    2024-02-02
  • react实现移动端下拉菜单的示例代码

    react实现移动端下拉菜单的示例代码

    这篇文章主要介绍了react实现移动端下拉菜单的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • React受控组件与非受控组件实例分析讲解

    React受控组件与非受控组件实例分析讲解

    具体来说这是一种react非受控组件,其状态是在input的react内部控制,不受调用者控制。可以使用受控组件来实现。下面就说说这个React中的受控组件与非受控组件的相关知识,感兴趣的朋友一起看看吧
    2023-01-01
  • React自定义Hook的实现

    React自定义Hook的实现

    自定义Hook是一种自定义函数,它封装了React Hook的逻辑,并通过命名约定来使其可重用,本文主要介绍了React自定义Hook的实现,感兴趣的可以了解一下
    2023-11-11
  • React渲染机制及相关优化方案

    React渲染机制及相关优化方案

    这篇文章主要介绍了react中的渲染机制以及相关的优化方案,内容包括react渲染步骤、concurrent机制以及产生作用的机会,简单模拟实现 concurrent mode,基于作业调度优先级的思路进行项目优化的两个hooks,感兴趣的小伙伴跟着小编一起来看看吧
    2023-07-07
  • React错误边界Error Boundaries详解

    React错误边界Error Boundaries详解

    错误边界是一种React组件,这种组件可以捕获发生在其子组件树任何位置的JavaScript错误,并打印这些错误,同时展示降级UI,而并不会渲染那些发生崩溃的子组件树
    2022-12-12
  • react最流行的生态替代antdpro搭建轻量级后台管理

    react最流行的生态替代antdpro搭建轻量级后台管理

    这篇文章主要为大家介绍了react最流行的生态替代antdpro搭建轻量级后台管理示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • React中DOM事件和状态介绍

    React中DOM事件和状态介绍

    这篇文章主要介绍了React中DOM事件和状态介绍,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-08-08
  • React使用UI(Ant?Design)框架的详细过程

    React使用UI(Ant?Design)框架的详细过程

    Ant?Design主要用于中后台系统的使用,它提供了丰富的组件和工具,可以帮助开发人员快速构建出美观、易用的界面,同时,Ant?Design还提供了详细的文档和示例,方便开发者学习和使用,这篇文章主要介绍了React使用UI(Ant?Design)框架,需要的朋友可以参考下
    2023-12-12

最新评论


http://www.vxiaotou.com