zoukankan      html  css  js  c++  java
  • 面试:react(三)

    1. react中setState是同步还是异步?什么时候同步?什么时候异步?

    setState既可以同步,也可以异步。
    在合成事件和声明周期函数中,setState是异步;
    原生事件和 setTimeout 中都是同步的。
    合成事件:就是react 在组件中的onChange,onClick,onTouchMove等都是属于它自定义的合成事件
    原生事件:比如通过addeventListener添加的,dom中的原生事件

    参考:https://www.jianshu.com/p/799b8a14ef96?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

    2. react怎么控制同步还是异步?

    在React的setState函数实现中,会根据一个变量 isBatchingUpdates 判断是直接更新this.state还是放到队列中延时更新。
    isBatchingUpdates默认值是false,表示setState会同步更新this.state;
    还有一个函数,batchedUpdates,该函数会把isBatchingUpdates修改为true,在React调用事件处理函数之前就会先调用batchedUpdates将isBatchingUpdates修改为true;
    这样React控制的事件处理过程setState不会同步更新this.state.
    

    3. react更新页面的方式?

    1.setState
    2.dispatch action
    3.操作原生dom
    4.forceUpdate
    5.Context

    https://blog.csdn.net/u010377383/article/details/79407241

    4、什么叫合成事件

    如果react事件绑定在了真实DOM节点上,一个节点同事有多个事件时,
    页面的响应和内存的占用会受到很大的影响。因此SyntheticEvent作为
    中间层出现了。
    事件没有在目标对象上绑定,而是在document上监听所支持的所有事件,当事件发生并冒泡至document时,react将事件内容封装并叫由真正的处理函数运行。 

      

  • 相关阅读:
    matlab中的匹配函数
    查看matlab中的小波基
    图像处理中的彩色图像处理
    OSEK Event mechanism
    OSEK OS Resource management
    ISO17356标准简介[转]
    OSEK OS标准简介(转)
    IQmath的使用方法
    HIVERT高压变频主电路构造原理
    MPPT算法
  • 原文地址:https://www.cnblogs.com/liumcb/p/14031005.html
Copyright © 2011-2022 走看看