温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-06-04 09:45:39 来源:亿速云 阅读:189 作者:小新 栏目:开发技术

这篇文章主要介绍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