亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

React中setState同步和異步的示例分析

發布時間:2021-06-04 09:45:39 來源:億速云 閱讀:172 作者:小新 欄目:開發技術

這篇文章主要介紹React中setState同步和異步的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

 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同步和異步的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

韩城市| 墨竹工卡县| 城步| 甘南县| 建湖县| 霞浦县| 寻乌县| 抚松县| 彩票| 宁远县| 全椒县| 故城县| 靖西县| 卢龙县| 威远县| 宁蒗| 孟州市| 旺苍县| 新营市| 双城市| 平邑县| 桐柏县| 云阳县| 哈巴河县| 芮城县| 密山市| 凤城市| 宿州市| 长宁区| 山阳县| 文昌市| 彰武县| 湾仔区| 武汉市| 家居| 宝丰县| 阿拉善左旗| 富川| 仙居县| 永济市| 微山县|