react setState异步变同步

news/2024/7/15 17:57:37 标签: react.js, javascript, 前端
javascript">/*
 * @Author: shihaixia
 * @Date: 2022-02-11 15:25:43
 * @Description: 
 */

import React, { Component } from 'react';

export default class Home extends Component {
  constructor(props){
    super(props);
    this.state={
      count:0
    };
  }
  componentDidMount(){
    // 第四种
    // document.getElementsByTagName("button")[0].addEventListener('click',()=>{
    //   this.setState({
    //     count:this.state.count+2
    //   })
    //   console.log("第4种=======》",this.state.count)
    // })
  }
  setCount=()=>{
    // 异步
    // this.setState({
    //   count:this.state.count+1
    // })
    // this.setState({
    //   count:this.state.count+2
    // })
    // 变同步
    // 第一种
    // this.setState(nextState=>{
    //   return {
    //     count:nextState.count+1
    //   }
    // })
    //  this.setState(nextState=>{
    //   return {
    //     count:nextState.count+2
    //   }
    // })
    //console.log("异步============>",this.state.count) //打印出来0,页面为2
    // 方法二
    // setTimeout(() => {
    //    this.setState({
    //   count:this.state.count+1
    // })
    //   this.setState({
    //   count:this.state.count+2
    // })
    // }, 0);
    // console.log("第2种",this.state.count) 

    // 方法三
     this.setState({
        count:this.state.count+2
    },()=>{
       console.log("第3种============》",this.state.count) 
    })
  }

  render() {
    const {count} =this.state;
    return <div>
      <p>{count}</p>
      <button onClick={this.setCount}>点击</button>
    </div>;
  }
}


http://www.niftyadmin.cn/n/509509.html

相关文章

【Redux】简解及工作流程分析

文章目录一、基本介绍二、三大原则三、工作流程图一、基本介绍 2013 年 Facebook 提出了 Flux 架构的思想&#xff0c;引发了很多的实现。2015年&#xff0c;Redux 出现&#xff0c;将 Flux 与函数式编程结合一起&#xff0c;很短时间内就成为了最热门的前端架构 React 与 Redu…

react--Hooks--useState、useEffect、useReducer实例

Hook Hook是React16.8⼀个新增项&#xff0c;它可以让你在不编写 class 的情况 下使⽤ state 以及其他的 React 特性。 Hooks的特点&#xff1a; 使你在⽆需修改组件结构的情况下复⽤状态逻辑可将组件中相互关联的部分拆分成更⼩的函数&#xff0c;复杂组件将变得更容易理解更…

【Redex】使用及案例分析

文章目录一、基本使用二、案例分析&#xff1a;2.1、不用 Redex2.2、使用 Redex2.3、知识点总结&#xff1a;2.4、Redux 异步操作2.5、改写计数器2.6、知识点总结一、基本使用 在组件中展示一个按钮&#xff0c;点按钮后给redux中的数字9&#xff0c;数字初始为0,。实现一个计数…

react中hooks--useContext用法

useContext⽤于在快速在函数组件中导⼊上下⽂。 import React, { useContext } from "react"; const Context React.createContext(); const Provider Context.Provider; export default function HookContext() {const store {userName: "xiaoming",}…

【React】react-redux 案例

文章目录1. react-redux2. 改写计数器3. 知识点总结4. 优化计数器5. 优化总结1. react-redux react-redux 将所有组件分成两大类&#xff1a; UI 组件&#xff08;presentational component&#xff09; 容器组件&#xff08;container component&#xff09;UI组件容器组件作…

ant design 按需加载

配置按需加载 安装react-app-rewired取代react-scripts&#xff0c;可以扩展webpack的配置 &#xff0c;类似vue.config.js 在根目录下创建config-overrides.js const {override,fixBabelImports, } require("customize-cra");module.exports override(fixBabelI…

【React】JSX 语法及原理

文章目录一、JSX 原理分析1.1、案例分析1.2、作用总结二、JSX 语法使用2.1、插值表达式2.2、属性绑定2.3、数组渲染一、JSX 原理分析 要明白JSX的原理&#xff0c;需要先明白如何用 JavaScript 对象来表现一个 DOM 元素的结构 <div classapp idappRoot><h1 classtit…

react插槽--默认插槽,具名插槽

不具名插槽 Props.js import Layout from "./Layout"; // 函数式组件传值 export default function Props() {return (<Layout title"函数式传值"><div><h3>函数式传值</h3><p>不具名插槽</p></div></Layou…