最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

代碼解析React中setState同步和異步問題

 更新時間:2021年06月03日 17:15:07   作者:Houqh95  
前端框架從MVC過渡到MVVM。從DOM操作到數(shù)據(jù)驅(qū)動,一直在不斷的進(jìn)步著,本文給大家介紹React中setState同步和異步問題,感興趣的朋友一起看看吧

 React起源于Facebook的內(nèi)部項目。React的出現(xiàn)是革命性的創(chuàng)新,React的是一個顛覆式的前端框架。在React官方這樣介紹的它:一個聲明式、高效、靈活的、創(chuàng)建用戶界面的JavaScript庫,即使React的主要作用是構(gòu)建UI,但是項目的逐漸成長已經(jīng)使得react成為前后端通吃的WebApp解決方案。

 angular中用的是watcher對象,vue是觀察者模式,react就是state了,他們各有各的特點(diǎn),沒有好壞之分,只有需求不同而選擇不同。

      React的官方網(wǎng)址:https://reactjs.org/GitHub

地址為:https://github.com/facebook/react

1.在React中,由React控制的事件處理函數(shù),如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監(jiān)聽的事件中,如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同步和異步代碼詳解的詳細(xì)內(nèi)容,更多關(guān)于React setState同步和異步的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用useEffect模擬組件生命周期

    使用useEffect模擬組件生命周期

    這篇文章主要介紹了使用useEffect模擬組件生命周期,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • react滾動加載useInfiniteScroll?詳解

    react滾動加載useInfiniteScroll?詳解

    使用useInfiniteScroll?hook可以處理檢測用戶何時滾動到頁面底部的邏輯,并觸發(fā)回調(diào)函數(shù)以加載更多數(shù)據(jù),它還提供了一種簡單的方法來管理加載和錯誤消息的狀態(tài),今天通過實(shí)例代碼介紹下react滾動加載useInfiniteScroll?相關(guān)知識,感興趣的朋友跟隨小編一起看看吧
    2023-09-09
  • React中如何設(shè)置多個className

    React中如何設(shè)置多個className

    這篇文章主要介紹了React中如何設(shè)置多個className問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • React SSR服務(wù)端渲染的實(shí)現(xiàn)示例

    React SSR服務(wù)端渲染的實(shí)現(xiàn)示例

    本文主要介紹了實(shí)現(xiàn)React服務(wù)端渲染,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • React中的JSX??{?}的使用詳解

    React中的JSX??{?}的使用詳解

    這篇文章主要介紹了React中的JSX{?}的使用,React使用JSX來替代常規(guī)的JavaScript,JSX可以理解為的JavaScript語法擴(kuò)展,它里面的標(biāo)簽申明要符合XML規(guī)范要求,對React?JSX使用感興趣的朋友一起看看吧
    2022-08-08
  • create-react-app如何降低react的版本

    create-react-app如何降低react的版本

    這篇文章主要介紹了create-react-app降低react的版本方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • React簡介入門教程

    React簡介入門教程

    本文總結(jié)了React的基礎(chǔ)知識點(diǎn),包括環(huán)境搭建、核心概念(JSX、組件、props、state、事件處理、條件渲染、列表渲染)以及組件進(jìn)階(生命周期、Hooks、通信),適合零基礎(chǔ)開發(fā)者學(xué)習(xí),涵蓋理論與實(shí)操,適合React項目的開發(fā)和維護(hù),感興趣的朋友跟隨小編一起看看吧
    2026-02-02
  • React項目動態(tài)設(shè)置title標(biāo)題的方法示例

    React項目動態(tài)設(shè)置title標(biāo)題的方法示例

    這篇文章主要介紹了React項目動態(tài)設(shè)置title標(biāo)題的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • react實(shí)現(xiàn)瀏覽器自動刷新的示例代碼

    react實(shí)現(xiàn)瀏覽器自動刷新的示例代碼

    這篇文章主要介紹了react實(shí)現(xiàn)瀏覽器自動刷新的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • React Context跨層級通信的利器

    React Context跨層級通信的利器

    本文主要介紹了React Context跨層級通信的利器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-05-05

最新評論

广昌县| 长丰县| 民权县| 岚皋县| 固镇县| 延庆县| 准格尔旗| 夹江县| 额济纳旗| 诏安县| 礼泉县| 开化县| 阳山县| 乳山市| 宣恩县| 嘉峪关市| 东港市| 会理县| 阿克陶县| 本溪| 大连市| 安溪县| 洛扎县| 香港| 华坪县| 晋中市| 航空| 略阳县| 云林县| 行唐县| 曲靖市| 微山县| 南平市| 宝应县| 潞西市| 鹰潭市| 沿河| 桂林市| 长泰县| 鲜城| 荣成市|