浅谈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 部分异步的主要内容,如果未能解决你的问题,请参考以下文章