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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值