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将事件内容封装并叫由真正的处理函数运行。 

      

  • 相关阅读:
    drf之序列化器的使用
    drf的安装和配置
    drf(djangorestframework)
    前后端分离和restful开发规范
    requests模块的一些总结
    Glide 使用教程与原理
    Dagger2 单例
    Android
    继承Application管理生命周期
    Android
  • 原文地址:https://www.cnblogs.com/liumcb/p/14031005.html
Copyright © 2011-2022 走看看