博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
React中的setState到底发生了什么?
阅读量:4970 次
发布时间:2019-06-12

本文共 1334 字,大约阅读时间需要 4 分钟。

https://yq.aliyun.com/ziliao/301671

https://segmentfault.com/a/1190000014498196

https://blog.csdn.net/u011272795/article/details/80882567

import React, { Component } from 'react';export default class SeeState extends Component {  constructor() {    super();      this.state = { val: 0 };  }  componentDidMount() {    // 在同一个方法中多次setState是会被合并的,并且对相同属性的设置只保留最后一次的设置;    // 定时器中的setState,每次都会引起新的render,即使是同一个定时器中的多次setState    // render输出3      this.setState({val: this.state.val + 1});      console.log(this.state.val); // 第 1 次 log 0      this.setState({val: this.state.val + 1});      console.log(this.state.val); // 第 2 次 log 0      setTimeout(() => {          this.setState({val: this.state.val + 1});          console.log(this.state.val); // 第 3 次 log 2          this.setState({val: this.state.val + 1});          console.log(this.state.val); // 第 4 次 log 3      }, 0);    // setState不会立刻改变React组件中state的值;而是存一个快照    // render输出2    // this.setState(prevState=>({
// val: prevState.val+1 // })) // console.log(this.state.val); // 第 1 次 log 0 // this.setState(prevState=>({
// val: prevState.val+1 // })) // console.log(this.state.val); // 第 2 次 log 0 } render() { const {val} = this.state return (
{val}
); }}

 

转载于:https://www.cnblogs.com/llcdxh/p/10002579.html

你可能感兴趣的文章
揭秘:黑客必备的Kali Linux是什么,有哪些弊端?
查看>>
linux系统的远程控制方法——学神IT教育
查看>>
springboot+mybatis报错Invalid bound statement (not found)
查看>>
Linux环境下SolrCloud集群环境搭建关键步骤
查看>>
P3565 [POI2014]HOT-Hotels
查看>>
MongoDB的简单使用
查看>>
prometheus配置
查看>>
【noip2004】虫食算——剪枝DFS
查看>>
python 多进程和多线程的区别
查看>>
sigar
查看>>
iOS7自定义statusbar和navigationbar的若干问题
查看>>
[Locked] Wiggle Sort
查看>>
deque
查看>>
c#中从string数组转换到int数组
查看>>
数据模型(LP32 ILP32 LP64 LLP64 ILP64 )
查看>>
java小技巧
查看>>
POJ 3204 Ikki's Story I - Road Reconstruction
查看>>
iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
查看>>
toad for oracle中文显示乱码
查看>>
SQL中Group By的使用
查看>>