首页 > 其他 > 详细

浅谈React、Vue 部分异步

时间:2018-06-26 00:23:02      阅读:291      评论:0      收藏:0      [点我收藏+]

React中的setState

setState为什么需要异步?

  • 无法限制何时使用异步,多次连续使用setState
  • 防止多次渲染,异步rendering不仅仅是性能上的优化,而且这可能是react组件模型在发生的根本性的改变
this.setState({
    inputTxt:‘‘
})
console.log(this.state.inputTxt); //立即打印不出inputTxt:‘‘

  

如果我们要立即打印出inputTxt的变化需要通过setTimeout打印出来

  this.setState({
      inputTxt:‘‘
 })
setTimeout(function(){
     console.log(this.state.inputTxt);
 },0)

或者:

 this.setState({
     inputTxt:‘‘
},()=>{
     console.log(this.state.inputTxt);
})

setState最终会通过this.render 返回newVnode,然后通过patch函数和preVnode进行对比,从而重新渲染html

Vue中的属性变化

vue中属性变化,首先触发Object.defineProperty中属性的set监听,执行updateComponent方法(异步),通过vm._render()更新vNode(新旧node对比),最后渲染到html中

浅谈React、Vue 部分异步

原文:https://www.cnblogs.com/fuGuy/p/9226856.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!