2020前端前端开发那些事儿2020前端面试汇总

2020前端面试 - React.js篇

2020-06-14  本文已影响0人  西巴撸

前言:

2020年是多灾多难的一年,疫情持续至今,到目前,全世界的经济都受到不同程序的影响,各大公司裁员,在这样一片严峻的形式下,找工作更是难上加难。

企业的门槛提高,第一,对于学历的要求,必须学信网可查的统招本科;第二,对于技术的掌握程序,更多的是底层原理,项目经验,等等。

下面是面试几周以来,总结的一些面试中常被问到的题目,还有吸取的一些前辈们分享的贴子,全部系统的罗列出来,希望能够帮到正在面试的人。

React.js

1. React生命周期

大致和Vue相同,不同的是,react没有局部更新,更新父组件的同时也会更新子组件。

1.挂载:父componentWillMount -> 子componentWillMount -> 子componentDidMount -> 父componentDidMount

2.销毁:父componentWillUnmount -> 子componentWillUnmount

3.更新
(1)只更新子:子shouldComponentUpdate -> 子componentWillUpdate -> 子componentDidUpdate
(2)更新父或同时更新:父shouldComponentUpdate -> 父componentWillUpdate -> 子componentWillReceiveProps-> 子shouldComponentUpdate -> 子componentWillUpdate -> 子componentDidUpdate -> 父componentDidUpdate

2. React17 生命周期改动
componentWillMount
componentWillRecieveProps
componentWIllUpdate

简单来说就是这三个生命周期函数容易被误解并滥用,可能会对异步渲染造成潜在的问题。可用UNSAFE_xxx 来取消eslint的报错。

3. React的通信方式
props
context。可跨级通信,但不知道来源哪里不推荐使用。基于生产者消费者模式
redux和react-redux
用js实现发布订阅模式
React17 会废弃childContext 使用新API - createContext(),并提供Provider和consumer组件,类似Vue
4. setState

setStateReact组件中用于更新数据和触发渲染的函数,他的用法如下

this.setState(newState:object | updater: Function, callback?)

updater = (state, prop) => {}
  1. setState出发React的更新生命周期函数4个函数:shouldComponentUpdatecomponentWillUpdaterendercomponentDidUpdate。如果每一次setState 调用都走一圈生命周期,并拿render函数返回的结果会拿去做Virtual DOM比较和更新DOM树,这个就比较费时间。
  2. 目前React会将setState的效果放在队列中,积攒着一次引发更新过程。为的就是把 Virtual DOM 和 DOM 树操作降到最小,用于提高性能。
ReactComponent.prototype.setState = function (partialState, callback) {
  // 更新的操作会放在数组里
  this.updater.enqueueSetState(this, partialState);
  if (callback) {
    this.updater.enqueueCallback(this, callback, 'setState');
  }};
5. React的事件机制
6. React16
7. Fiber
8. 函数式组件,class组件,受控组件,高级组件的概念
9. React-router
10. Redux
11. Redux数据流
调用 store.dispatch(action)。
Redux store 调用传入的 reducer 函数。
根 reducer 应该把多个子 reducer 输出合并成一个单一的 state 树。
Redux store 保存了根 reducer 返回的完整 state 树。
image.png

# Node.js

1. eventloop

在 node 11 版本中,node 下 Event Loop 已经与浏览器趋于相同。我们可以用浏览器的微任务和宏任务解释,11版本前的timer,由于到期时间相近,会在timer阶段合并执行。所以打出time1后,打印time2。

2. koa 洋葱模型
上一篇下一篇

猜你喜欢

热点阅读