• React面试题总结


    1.组件之间如何通信

    1.父子组件之间通过props来通信

    2.通过自定义事件通信

    3.Redux和Context(父组件将数据传递给子组件,孙子组件,一直往下传)

    2.JSX的本质是什么

    createElement函数

    执行返回vnode

    3.Context是什么,有什么作用

    父组件向它下面的所有子孙组件传递信息

    比如一些简单的公共信息:主题,颜色等

    对于复杂的公共信息,使用Redux进行传递

    4.shouldComponentUpdate的使用

    性能优化,减少不必要的重复渲染

    5.Redux单向数据流

    View-->action-->dispatch-->reducer-->state-->view

    6.什么是纯函数

    函数的结果返回一个新值,不会修改其他值,没有副作

    如arr1=arr.slice()

    7.在React中,ajax应该放到哪个生命周期

    应该将ajax放到一个dom已经渲染完成的生命周期之中,这样整个应用会比较流畅,所以应该放入到ComponentDidMount之中

    8.渲染列表为什么要用key

    diff算法需要通过tag和key来判断是否为sameNode

    9.函数组件和class组件的区别

    函数组件输入props,输出JSX

    函数组件没有实例,没有生命周期,没有state

    不能拓展其他方法

    10.什么是受控组件

    表单的值受state控制

    需要自行监听onChange,更新State

    11.何时使用异步组件

    加载大组件

    懒加载

    12.多个组件有公共逻辑,如何抽离

    高阶组件(HOC)

    Render Props

    13.Redux如何进行异步请求

    使用异步action

    如Redux-thunk

    14.React性能优化

    1.渲染列表时加key

    2.自定义事件,DOM事件及时销毁

    3.合理使用异步组件

    4.减少bind this使用次数

    5.合理使用SCU PureComponent 和memo

    6.合理使用immutable.js

    7.前端通用的性能优化,如图片懒加载

    15.React和Vue

    1.相同点

    1.都支持组件化

    2.都是数据驱动视图

    3.都使用vdom操作DOM

    2.区别

    1.React使用JSX拥抱JS,Vue使用模板拥抱html

    2.React函数式编程,Vue声明式编程

    3.React的api并不成熟,需要自力更生,而Vue已经有了比较成熟和丰富的API

  • 相关阅读:
    Verilator: sh: 1: exec: < PATHNAME >: not found
    【超详细】Fastjson 1.2.24 命令执行漏洞复现-JNDI简单实现反弹shell(CVE-2017-18349)
    ios环境搭建
    搭建Vue开发环境,NPM工具使用,Vue工程创建,启动,打包
    C++ STL --- vector的使用
    为什么Video Speed Manager 和 Video Speed Controller 的chrome插件对有些B站视频不能调速
    MnasNet学习笔记
    gateway之断言的使用详解
    docker&kubernets篇(十八)
    如何使用yum 安装php7.2
  • 原文地址:https://blog.csdn.net/weixin_44858541/article/details/126089329