当前位置: 首页 > news >正文

react setState学习记录

react setState学习记录

  • 1.总体看来
  • 2.setState的执行是异步的
  • 3.函数式setState

1.总体看来

(1). setState(stateChange, [callback])------对象式的setState
1.stateChange为状态改变对象(该对象可以体现出状态的更改)
2.callback是可选的回调函数, 它在状态更新完毕、界面也更新后(render调用后)才被调用
(2). setState(updater, [callback])------函数式的setState
1.updater为返回stateChange对象的函数。
2.updater可以接收到state和props。
4.callback是可选的回调函数, 它在状态更新、界面也更新后(render调用后)才被调用。
总结:
1.对象式的setState是函数式的setState的简写方式(语法糖)
2.使用原则:
(1).如果新状态不依赖于原状态 ===> 使用对象方式
(2).如果新状态依赖于原状态 ===> 使用函数方式
(3).如果需要在setState()执行后获取最新的状态数据,
要在第二个callback函数中读取

2.setState的执行是异步的

一般可能setState都是直接this.setState({})使用的

import React, { Component } from 'react'export default class Demo extends Component {state = {count:0}add = ()=>{//对象式的setState//1.获取原来的count值const {count} = this.state//2.更新状态//setState其实是同步的,但是交给了react去执行,不是马上去执行执行是异步的this.setState({count:count+1},()=>{console.log(this.state.count);})console.log('12行的输出',this.state.count); }render() {return (<div><h1>当前求和为:{this.state.count}</h1><button onClick={this.add}>点我+1</button></div>)}
}

在这里插入图片描述
可以看到控制台的打印出来的值是不一样的,回调里可以拿到更新后的准确值,有点类似于vue的$nextTick

3.函数式setState

函数式的setState可以直接到state和props参数

    this.setState((state, props) => {console.log(state, props);return { count: state.count + 1 };},() => {console.log(this.state.count);});

相关文章:

react setState学习记录

react setState学习记录1.总体看来2.setState的执行是异步的3.函数式setState1.总体看来 (1). setState(stateChange, [callback])------对象式的setState 1.stateChange为状态改变对象(该对象可以体现出状态的更改) 2.callback是可选的回调函数, 它在状态更新完毕、界面也更新…...

Docker容器cpu利用率问题

1.top原理 top 是读的/proc/stat文件 比如cat /proc/PID/stat 进程的总Cpu时间processCpuTime utime stime cutime cstime&#xff0c;该值包括其所有线程的cpu时间 某一进程Cpu使用率的计算 计算方法&#xff1a; 1 采样两个足够短的时间间隔的cpu快照与进程快照&…...

FreeRTOS入门(06):任务通知

文章目录目的基础说明使用演示作为二进制信号量作为计数信号量作为事件组作为队列或邮箱相关函数总结目的 任务通知&#xff08;TaskNotify&#xff09;是RTOS中相对常用的用于任务间交互的功能&#xff0c;这篇文章将对相关内容做个介绍。 本文代码测试环境见前面的文章&…...

谷歌seo做的外链怎样更快被semrush识别

本文主要分享做谷歌seo外链如何能让semrush工具快速的记录并能查询到。 本文由光算创作&#xff0c;有可能会被剽窃和修改&#xff0c;我们佛系对待这种行为吧。 谷歌seo做的外链怎样更快被semrush识别&#xff1f; 答案是&#xff1a;多使用semrush搜索目标网站可加速爬虫抓…...

Java | IO 模式之 JavaBIO 应用

文章目录IO模型Java BIOJava NIOJava AIO&#xff08;NIO.2&#xff09;BIO、NIO、AIO的使用场景BIO1 BIO 基本介绍2 BIO 的工作机制3 BIO 传统通信实现3.1 业务需求3.2 实现思路3.3 代码实现4 BIO 模式下的多发和多收消息4.1 业务需求4.2 实现思路4.3 代码实现5 BIO 模式下接收…...

C语言学习及复习笔记-【18】C内存管理

18 C内存管理 C 语言为内存的分配和管理提供了几个函数。这些函数可以在 <stdlib.h> 头文件中找到。 序号函数和描述1void *calloc(int num, int size); 在内存中动态地分配 num 个长度为 size 的连续空间&#xff0c;并将每一个字节都初始化为 0。所以它的结果是分配了…...

linux--多线程(一)

文章目录Linux线程的概念线程的优点线程的缺点线程异常线程的控制创建线程线程ID以及进程地址空间终止线程线程等待线程分离线程互斥进程线程间的互斥相关概念互斥量mutex有线程安全问题的售票系统查看ticket--部分的汇编代码互斥量的接口互斥量实现原理探究可重入和线程安全常…...

计算机组成原理(2.1)--系统总线

目录 一、总线基本知识 1.总线 2.总线的信息传送 3.分散连接图 4.注 二、总线结构的计算机举例 1.面向 CPU 的双总线结构框图 2.单总线结构框图 3.以存储器为中心的双总线结构框图 三、总线的分类 1.片内总线 2.系统总线 &#xff08;板级总线或板间总线&#…...

C语言数组【详解】

数组1. 一维数组的创建和初始化1.1 数组的创建1.2 数组的初始化1.3 一维数组的使用1.4 一维数组在内存中的存储2. 二维数组的创建和初始化2.1 二维数组的创建2.2 二维数组的初始化2.3 二维数组的使用2.4 二维数组在内存中的存储3. 数组越界4. 数组作为函数参数4.1 冒泡排序函数…...

并行与体系结构会议

A类会议 USENIX ATC 2022: USENIX Annual Technical Conference&#xff08;录用率21%&#xff09; CCF a, CORE a, QUALIS a1 会议截稿日期&#xff1a;2022-01-06 会议通知日期&#xff1a;2022-04-29 会议日期&#xff1a;2022-07-11 会议地点&#xff1a;Carlsbad, Califo…...

【巨人的肩膀】JAVA面试总结(三)

1、&#x1f4aa; 目录1、&#x1f4aa;1、说说List, Set, Queue, Map 四者的区别1.1、List1.2、Set1.3、Map2、如何选用集合4、线程安全的集合有哪些&#xff1f;线程不安全的呢&#xff1f;3、为什么需要使用集合4、comparable和Comparator的区别5、无序性和不可重复性的含义…...

嵌入式 STM32 SHT31温湿度传感器

目录 简介 1、原理图 2、时序说明 数据传输 起始信号 结束信号 3、SHT31读写数据 SHT31指令集 读数据 温湿度转换 4、温湿度转换应用 sht3x初始化 读取温湿度 简介 什么是SHT31&#xff1f; 一主机多从机--通过寻址的方式--每个从机都有唯一的地址&…...

哪款蓝牙耳机打电话好用?打电话音质好的蓝牙耳机

现在几乎是人人离不开耳机的时代。在快节奏的生活和充满嘈杂声音的世界中&#xff0c;戴着耳机听歌&#xff0c;是每个人生活中最不可或缺的一段自由、放松的时光&#xff0c;下面小编就来分享几款通话音质好的蓝牙耳机。 一、南卡小音舱蓝牙耳机 动圈单元&#xff1a;13.3mm…...

【C++】-- 内存泄漏

目录 内存泄漏 内存泄漏分类 如何检测内存泄漏 如何避免内存泄漏 内存泄漏 #问&#xff1a;什么是内存泄漏&#xff1f;内存泄漏&#xff1a;指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理上的消失&#xff0c;而是应用程序分配某…...

C++ STL学习之【string类的模拟实现】

✨个人主页&#xff1a; Yohifo &#x1f389;所属专栏&#xff1a; C修行之路 &#x1f38a;每篇一句&#xff1a; 图片来源 The key is to keep company only with people who uplift you, whose presence calls forth your best. 关键是只与那些提升你的人在一起&#xff0c…...

Selenium基于POM的自动化测试实践

什么是Page Object模式 Page Object 见名知意&#xff0c;就是页面对象&#xff0c;并将页面元素定位方法和元素操作进行分离。在实际自动化测试实战过程中&#xff0c;我们一般对脚本的实现分为三层&#xff1a; (1)对象层&#xff1a; 用于存放页面元素定位和控件操作 (2)逻…...

记录每日LeetCode 2373.矩阵中的局部最大值 Java实现

题目描述&#xff1a; 给你一个大小为 n x n 的整数矩阵 grid 。 生成一个大小为 (n - 2) x (n - 2) 的整数矩阵 maxLocal &#xff0c;并满足&#xff1a; maxLocal[i][j] 等于 grid 中以 i 1 行和 j 1 列为中心的 3 x 3 矩阵中的 最大值 。 换句话说&#xff0c;我们希…...

QT中级(6)基于QT的文件传输工具(2)

QT中级&#xff08;6&#xff09;基于QT的文件传输工具&#xff08;2&#xff09;本文实现第一步1 新增功能2 运行效果3 实现思路4 源代码实现这个文件传输工具大概需要那几步&#xff1f;实现多线程对文件的读写实现TCP客户端和服务端实现网络传输 书接上回&#xff1a;QT中级…...

【Linux】工具(3)——gcc/g++

咱们继续进阶&#xff0c;接下来进入到Linux工具中gcc和g的学习在本章博客正式开始介绍之前&#xff0c;我们先要弄清楚程序是怎么翻译的&#xff1a;C语言程序环境一、什么是gcc/g&#x1f4cc;gcc是一个c编译器&#xff0c; g是c编译器。我们根据代码的后缀名来判断用哪个编译…...

Android文件选择器

使用方法:在里层的build.grade的dependency里面加入: implementation com.leon:lfilepickerlibrary:1.8.0 引用https://github.com/leonHua/LFilePicker/blob/master/README_CH.md#lfilepicker LFilePicker 说明:如果发现应用名称被修改,可以参考issues#26 查看解决方案,或…...

《MySql学习》 Select 查询语句慢的非性能原因

一.查询被阻塞 A会话执行 查询操作&#xff0c;长时间没有返回信息,此时我们就可以去排查一下是否是被阻塞了 select * from words 被阻塞的原因有很多&#xff0c;首先列举第一种情况 1.等MDL锁 当我们执行DDL语句时&#xff0c;会自动给表加上MDL写锁。当执行DML和DQL时&…...

Vue组件间通信方式超详细(父传子、父传后代、子传父、后代传父、兄弟组件传值)

一、父传子、父传后代 方式一&#xff1a;子通过props来接收 父组件&#xff1a;父组件引入子组件时&#xff0c;通过<child :parentValue "parentValue"></child>子组件传值。 备注&#xff1a;这种方式父传值很方便&#xff0c;但是传递给后代组件不…...

【ES】Elasticsearch-深入理解索引原理

文章目录Elasticsearch-深入理解索引原理读操作更新操作SHARD不变性动态更新索引删除和更新实时索引更新持久化Segment合并近实时搜索&#xff0c;段数据刷新&#xff0c;数据可见性更新和事务日志更新索引并且将改动提交修改Searcher对象默认的更新时间Elasticsearch-深入理解…...

pdf压缩文件大小的方法是什么?word文件怎么批量转换成pdf格式?

大家在存储文件时&#xff0c;通常会遇到一些较大的文件&#xff0c;这时需要对其进行压缩处理。下面介绍一下如何压缩PDF文件大小以及批量转换Word文件为PDF格式。pdf压缩文件大小的方法是什么?1.打开小圆象PDF转换器&#xff0c;选择“PDF压缩”功能。2.在“PDF压缩”界面中…...

论文阅读——FECANet:应用特征增强的上下文感知小样本语义分割网络

代码&#xff1a;NUST-Machine-Intelligence-Laboratory/FECANET (github.com) 文章地址&#xff1a;地址 文章名称&#xff1a;FECANet: Boosting Few-Shot Semantic Segmentation with Feature-Enhanced Context-Aware Network 摘要 Few-shot semantic segmentation 是学习…...

数组模拟常见数据结构

我们来学习一下用数组模拟常见的数据结构&#xff1a;单链表&#xff0c;双链表&#xff0c;栈&#xff0c;队列。用数组模拟这些常见的数据结构&#xff0c;需要我们对这些数据结构有一定的了解哈。单链表请参考&#xff1a;http://t.csdn.cn/SUv8F 用数组模拟实现比STL要快&a…...

ADC0832的AD模数转换原理及编程

✅作者简介&#xff1a;嵌入式领域优质创作者&#xff0c;博客专家 ✨个人主页&#xff1a;咸鱼弟 &#x1f525;系列专栏&#xff1a;单片机设计专栏 &#x1f4c3;推荐一款求职面试、刷题神器&#x1f449;注册免费刷题 目录 一、描述 二、模数转换原理&#xff1a; 三、…...

【工具插件类教学】UnityPackageManager私人定制资源工具包

目录 一.UnityPackageManager的介绍 二.package包命名 三.包的布局 四.生成清单文件 五.制作package内功能 六.为您的软件包撰写文档 1.信息的结构 2.文档格式 七.提交上传云端仓库 1.生成程序集文件 2.上传至云端仓库 八.下载使用package包 1.获取包的云端路径 …...

【软件测试】2023年了还不会接口测试?老鸟总结接口测试面试谁还敢说我不会......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 测试面试&#xff0…...

类Vuex轻量级状态管理实现

引用自 摸鱼wiki 1. vuex vuex是一个前端广泛流行的状态管理库&#xff0c;主要由以下几大模块组成&#xff1a; state&#xff1a;状态存储getter&#xff1a;属性访问器mutation&#xff1a;可以理解为一个同步的原子性事务&#xff0c;修改state状态action&#xff1a;触发…...

企业网络搭建与应用试题及答案/seo兼职招聘

1 冒泡排序 BubbleSort 1.1 原理&#xff1a; 多次扫描整个数组&#xff0c;每次扫描都比较相邻两个元素&#xff0c;如果逆序&#xff0c;则交换两个元素。 第一次扫描结果是数值最大元素到数组的最后位置&#xff0c;比较的次数是n(数组长度)-1。 第二次扫描&#xff0c;因为…...

网站建设 案例展示/关键词优化技巧

果粉之家&#xff0c;专业苹果手机技术研究十年&#xff01;您身边的苹果专家~在今年WWDC21开发者大会上&#xff0c;苹果在介绍iOS 15系统重大变化时&#xff0c;还曾提到一个不太引人注目的小变化。那就是在iOS 15上&#xff0c;用户可以直接在App内申请内购退款&#xff0c;…...

php网站建设文献综述/天津seo网站推广

转载自&#xff1a;点击打开链接 这是敏捷开发松结对编程系列的第十篇&#xff08;栏目总目录&#xff09;。 以下是本人自己及各企业所采用的代码审查的最佳实践&#xff0c;有些数据做了归纳&#xff0c;以使其“更佳”。 请特别注意每个实践最后简单总结的价值观。如果想采用…...

旅游网站开发毕业论文前言/搜索引擎收录提交入口

用户在使用经典虚拟机时&#xff0c;经常会有如下疑问&#xff1a;门户主板页面中的 SSH/RDP 证书指纹这项信息是怎么来的&#xff1f;用途是什么&#xff1f;为什么有的时候为空&#xff1f;有没有对虚拟机使用有什么影响&#xff1f;以下我们进行一些基本的介绍&#xff1a; …...

怎么做时时彩网站代理/百度seo关键词优化电话

问题描述&#xff1a; 表: Employee ------------------- | Column Name | Type | ------------------- | id | int | | salary | int | ------------------- Id是该表的主键列。 该表的每一行都包含有关员工工资的信息。 编写一个SQL查询来报告 Employee 表…...

进行优化/深度优化

目录 题目描述 解决方案 代码 代码走读 传送门 题目描述 给定一个字符串&#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 输入/输出示例&#xff1a; 输入输出解释abcabcbb3因为无重复字符的最长子串是“abc”&#xff0c;所以其长度为3解决方案 这个问…...