zoukankan      html  css  js  c++  java
  • 浅谈React、Vue 部分异步

    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中

  • 相关阅读:
    UML类图与类的关系详解
    hadoop中的Partition
    几种排序
    poj 1006
    Hadoop namenode无法启动
    String中intern的方法
    java
    模板方法模式
    里氏替换原则
    按字节数截取字符串
  • 原文地址:https://www.cnblogs.com/fuGuy/p/9226856.html
Copyright © 2011-2022 走看看