广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >代码解析React中setState同步和异步问题
  • 379
分享到

代码解析React中setState同步和异步问题

2024-04-02 19:04:59 379人浏览 安东尼
摘要

 React起源于Facebook的内部项目。React的出现是革命性的创新,React的是一个颠覆式的前端框架。在React官方这样介绍的它:一个声明式、高效、灵活的、创

 React起源于Facebook的内部项目。React的出现是革命性的创新,React的是一个颠覆式的前端框架。在React官方这样介绍的它:一个声明式、高效、灵活的、创建用户界面的javascript库,即使React的主要作用是构建UI,但是项目的逐渐成长已经使得react成为前后端通吃的WEBApp解决方案。

 angular中用的是watcher对象,Vue是观察者模式,react就是state了,他们各有各的特点,没有好坏之分,只有需求不同而选择不同。

      React的官方网址:https://reactjs.org/GitHub

地址为:Https://github.com/facebook/react

1.在React中,由React控制的事件处理函数,如onClick, onChange等,setState是异步的


import React, { Component } from 'react';

export default class Input extends Component {
    constructor(props) {
        super(props);    

        this.state={
            name: 'hello'
        }    
    }

    _onChange(e) {
        this.setState({
            name:' world'
        })

        console.log(this.state.name); //hello
    }

  render () {
    return (
      <div className='cp'>
        <input className='cp-input'  value={this.state.name}  onChange={this._onChange.bind(this)} type="text"/>                
      </div>
    );
  }
}

2.在原生JS监听的事件中,如addEventListener, setState是同步的


import React, { Component } from 'react';

export default class Input extends Component {
    constructor(props) {
        super(props);    

        this.state={
            name: 'hello'
        }    
    }

    _onChange(e) {
        // do something
    }


    componentDidMount() {
        let input = document.querySelector('.cp-input');
        input.addEventListener('click', ()=>{
            this.setState({
                name:' world'
            })

            console.log(this.state.name); //world
        })
    }

  render () {
    return (
      <div className='cp'>
        <input className='cp-input'  value={this.state.name}  onChange={this._onChange.bind(this)} type="text"/>                
      </div>
    );
  }
}

3.在setTimeout中,setStatet是同步的


import React, { Component } from 'react';

export default class Input extends Component {
    constructor(props) {
        super(props);    

        this.state={
            name: 'hello'
        }    
    }

    _onChange(e) {
        // do something
    }


    componentDidMount() {
        setTimeout(()=>{
            this.setState({
                name:' world'
            })
            console.log(this.state.name); //world
        }, 1000)
    }

  render () {
    return (
      <div className='cp'>
        <input className='cp-input'  value={this.state.name}  onChange={this._onChange.bind(this)} type="text"/>                
      </div>
    );
  }
}

以上就是解析React中setState同步和异步代码详解的详细内容,更多关于React setState同步和异步的资料请关注编程网其它相关文章!

--结束END--

本文标题: 代码解析React中setState同步和异步问题

本文链接: https://www.lsjlt.com/news/127534.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 代码解析React中setState同步和异步问题
     React起源于Facebook的内部项目。React的出现是革命性的创新,React的是一个颠覆式的前端框架。在React官方这样介绍的它:一个声明式、高效、灵活的、创...
    99+
    2022-11-12
  • React中setState同步或异步问题的示例分析
    这篇文章主要为大家展示了“React中setState同步或异步问题的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“React中setState同步或异步问题的示例分析”这篇文章吧。1....
    99+
    2023-06-25
  • 关于React中setState同步或异步问题的理解
    目录1. setState同步?异步? 2. 表现为异步 1. React 合成事件 2. 生命周期函数 3. 表现为同步 1. 原生事件 2. setTimeout 4. setS...
    99+
    2022-11-12
  • React中setState同步和异步的示例分析
    这篇文章主要介绍React中setState同步和异步的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! React起源于Facebook的内部项目。React的出现是革命性的创新,React的是一个...
    99+
    2023-06-15
  • Android异步回调中的UI同步性问题分析
    Android程序编码过程中,回调无处不在。从最常见的Activity生命周期回调开始,到BroadcastReceiver、Service以及Sqlite等。Activity...
    99+
    2022-06-06
    回调 Android
  • Python和Django中的路径同步问题解析?
    Python和Django中的路径同步问题解析 在Python和Django开发中,路径同步问题是一个经常遇到的问题。这个问题通常出现在开发过程中,当我们在本地开发环境中测试代码时,路径是相对于我们的本地环境的,但是在部署到生产环境中后,路...
    99+
    2023-06-03
    path 同步 django
  • 解决react中useState状态异步更新的问题
    目录疑惑状态异步更新带来的问题问题示例问题解决类组件的解决方案函数组件的解决方案其他解决方案结尾疑惑 相信刚开始使用react函数组件的小伙伴也遇到过一个坑,就是 useState ...
    99+
    2022-11-13
  • Java容器和Laravel同步问题解析:深入剖析!
    随着Web应用程序的日益复杂,Java容器和Laravel框架成为了越来越多的开发者的首选工具。但是,在使用这些工具的过程中,我们也会遇到一些同步问题。本文将深入剖析Java容器和Laravel框架的同步问题,并提供一些解决方案。 Jav...
    99+
    2023-09-14
    容器 同步 laravel
  • 同步、异步、并发:Java和Django中的重要概念解析
    在开发软件时,同步、异步和并发是非常重要的概念。Java和Django都是非常流行的编程语言和框架,这篇文章将解析这些概念在Java和Django中的使用方法和差异。 同步和异步 同步和异步是指任务之间的关系,它们是指程序执行的方式。在同...
    99+
    2023-09-10
    django 同步 并发
  • JUC中的Lock锁与synchronized同步代码块问题怎么解决
    这篇文章主要介绍“JUC中的Lock锁与synchronized同步代码块问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JUC中的Lock锁与synchronized同步代码块问题怎么解...
    99+
    2023-06-29
  • Oracle数据不同步的问题分析和解决思路
    其实帮助很多的朋友解决过Oracle数据库数据不同步的问题,看似简单的问题分析出来的原因也是五花八门。比如: Oracle数据库问题的一点总结 在查看一些没有专业DBA维护的数据库的时...
    99+
    2022-10-18
  • nodejs中解决异步嵌套循环和循环嵌套异步的问题
    众所周知,nodejs异步和循环对于初学者来说是一个很大的问题,今天我们就一起来了解和解决它 当异步和循环同时出现的时候这个问题就会被放大很多倍. 庆幸的是,大神们研究出了async这个第三方模块,解决...
    99+
    2022-06-04
    嵌套 nodejs
  • 从Laravel到Python:并发编程中的同步问题解析
    随着计算机技术的快速发展,我们越来越需要处理大量的并发请求。在编写并发应用程序时,最常见的问题之一就是同步问题。在本文中,我们将介绍并发编程中的同步问题,并介绍如何使用Python解决这些问题。 什么是同步问题? 同步问题在并发编程中是一...
    99+
    2023-09-16
    并发 同步 laravel
  • 关于java中@Async异步调用详细解析附代码
    目录前言1. @Async讲解2. 用法2.1 同步调用2.2 异步调用3. 自定义线程池前言 异步调用与同步调用 同步调用:顺序执行,通过调用返回结果再次执行下一个调用异步调用:通...
    99+
    2022-11-13
  • koa2中使用async 、await、promise解决异步问题的示例分析
    这篇文章给大家分享的是有关koa2中使用async 、await、promise解决异步问题的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。关键词:async 、awai...
    99+
    2022-10-19
  • java多线程编程同步器Future和FutureTask解析及代码示例
    publicinterfaceFuture<V>Future表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果。计算完成后只能使用get方法来获取结果,如有必要,计算完成前可以阻塞此方法。取消...
    99+
    2023-05-30
    java 多线程 ava
  • Java并发系列之JUC中的Lock锁与synchronized同步代码块问题
    目录一、Lock锁二、锁的底层三、案例案例一:传统的synchronized实现案例二:Lock锁的实现四、Lock锁和synchronized的区别写在前边: 在Java服务端中,...
    99+
    2022-11-13
  • C++中的多线程同步问题和解决方法概述
    C++中的多线程同步问题和解决方法概述多线程编程是一种并发编程的方式,有助于提高程序的性能和效率。然而,多线程编程也带来了一系列的挑战和问题,其中最突出的是多线程同步问题。本文将概述C++中的多线程同步问题,并介绍几种常见的解决方法。同时,...
    99+
    2023-10-22
    C++多线程同步 多线程问题 同步解决方法
  • 如何使用Promise解决多个异步Ajax请求导致的代码嵌套问题
    这篇文章将为大家详细讲解有关如何使用Promise解决多个异步Ajax请求导致的代码嵌套问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。问题前端小同学在做页面的时候,犯...
    99+
    2022-10-19
  • PHP中存储同步和重定向的问题解决方案是什么?
    在使用PHP进行开发的过程中,存储同步和重定向是经常遇到的问题。这两个问题都与HTTP协议密切相关。在这篇文章中,我们将介绍PHP中存储同步和重定向的问题,以及如何解决它们。 什么是存储同步? 当用户在网页上填写了表单并提交后,PHP需要...
    99+
    2023-10-06
    存储 同步 重定向
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作