• React面试题汇总


    1.如何理解React中的组件间数据传递?

      ①父-子  通过props传递

      ②子-父  在父中创建一个可以修改state的方法,之后把这个方法通过props传递给子,在子中调用这个方法

    从而达到修改父state的目的.

      ③非父子组件如何数据共享 or 数据通信:创建全局对象,监听对象on,数据发送方触发自定义事件同时传递数据.

     

    2.使用Creacte-react-app后创建的工程下有registerServiceWorker.js是做什么用的?

    答:registerServiceWorker就是为了react项目注册了一个service worker,用来做资源的缓存,这样你下次访问时,就可以更快的获取资源。而且因为资源被缓存,所以即使在离线的情况下也可以访问应用(此时使用的资源是之前缓存的资源)。注意,registerServiceWorler注册的Service  worker 只在生产环境中生效( props.env.NODE_ENV=== 'production')

    3.setState后发生了什么?

    答案:点击事件开始时,框架调用ReactEventListener.dispatchEvent之后执行batchedUpdates开启事务。

    setState中通过this.update.enqueueSetState方法把state加入队列(react-dom中实现了enqueueSetState方法)

    事件绑定的方法完成以后,框架会继续执行batchedUpdates进行批量更新。

     

    4.React性能优化是在哪个周期函数?

     答:shouldComponentUpdate这个方法用来判断是否需要调用render方法重新描绘dom。因为dom的描绘非常消耗性能

    ,如果我们能在shouldComponentUpdate方法中能够写出更优的dom diff 算法,可以极大的提高性能。

    5.React性能优化方案

     ①重写shouldComponentUpdate来避免不必要的dom操作

     ②使用production版本的react.js

     ③使用key来帮助React识别列表中所有子组件的最小变化。

  • 相关阅读:
    第二季-专题11-世界一下变大了-MMU
    第二季-专题10-C语言环境初始化
    第二季-专题9--代码搬移不可少
    第二季-专题8-不用内存怎么行
    第二季-专题6-点亮指路灯
    第二季-专题7-ARM跑快了---时钟初始化
    第二季-专题5-核心初始化
    第二季-专题4-我是bootloader设计师
    消除苹果系统对边框的优化
    css3
  • 原文地址:https://www.cnblogs.com/sna-ling/p/12375069.html
Copyright © 2020-2023  润新知