浅谈ReactVue 部分异步

Posted fuguy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈ReactVue 部分异步相关的知识,希望对你有一定的参考价值。

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中

以上是关于浅谈ReactVue 部分异步的主要内容,如果未能解决你的问题,请参考以下文章

当片段视图加载是异步任务的一部分时,如何在片段加载之前显示进度条?

在 ReactVue项目中使用 SVG

浅谈node的异步

浅谈JavaScript中的异步处理

reactvue项目熟悉技巧

浅谈Ajax 异步的几点细节