面试 | 必须要会的50个React面试题

前言

如果你是一位有抱负的前端程序员并准备面试,那么这篇文章很适合你。本文是你学习和面试 React 所需知识的***指南。

JavaScript 工具缓慢而稳定地在市场中扎根,对 React 的需求呈指数级增长。选择合适的技术来开发应用或网站变得越来越有挑战性。其中 React 被认为是增长最快的 Javascript 框架。

截至今天,Github 上约有1,000名贡献者。 Virtual DOM 和可重用组件等独特功能吸引了前端开发人员的注意力。尽管它只是 MVC(模型 – 视图 – 控制器)中“视图”的库,但它对 Angular,Meteor,Vue 等全面的框架也构成了强力的挑战。下图为流行的 JS 框架的趋势:

《面试 | 必须要会的50个React面试题》

JS 框架的趋势

React 面试题

以下是面试官最有可能问到的  50 个 React 面试题和答案。为方便你学习,我对它们进行了分类:

· 基本知识

· React 组件

· React Redux

· React 路由

基本知识

1、区分Real DOM和Virtual DOM

《面试 | 必须要会的50个React面试题》

2、什么是React?

· React 是 Facebook 在 2011 年开发的前端 JavaScript 库。

· 它遵循基于组件的方法,有助于构建可重用的UI组件。

· 它用于开发复杂和交互式的 Web 和移动 UI。

· 尽管它仅在 2015 年开源,但有一个很大的支持社区。

3、React有什么特点?

React的主要功能如下:

1. 它使用 虚拟DOM 而不是真正的DOM。

2. 它可以进行 服务器端渲染

3. 它遵循 单向数据流或数据绑定。

4、列出React的一些主要优点。

React的一些主要优点是:

1. 它提高了应用的性能

2. 可以方便地在客户端和服务器端使用

3. 由于 JSX,代码的可读性很好

4. React 很容易与 Meteor,Angular 等其他框架集成

5. 使用React,编写UI测试用例变得非常容易

5、React有哪些限制?

React的限制如下:

1. React 只是一个库,而不是一个完整的框架

2. 它的库非常庞大,需要时间来理解

3. 新手程序员可能很难理解

4. 编码变得复杂,因为它使用内联模板和 JSX

6、什么是JSX?

JSX 是J avaScript XML 的简写。是 React 使用的一种文件,它利用 JavaScript 的表现力和类似 HTML 的模板语法。这使得 HTML 文件非常容易理解。此文件能使应用非常可靠,并能够提高其性能。下面是JSX的一个例子:

1. render(){ 
2. return( 
3. <div> 4. <h1> Hello World from Edureka!!</h1> 5. </div> 6. ); 
7. }

7、你了解 Virtual DOM 吗?解释一下它的工作原理。

Virtual DOM 是一个轻量级的 JavaScript 对象,它最初只是 real DOM 的副本。它是一个节点树,它将元素、它们的属性和内容作为对象及其属性。 React 的渲染函数从 React 组件中创建一个节点树。然后它响应数据模型中的变化来更新该树,该变化是由用户或系统完成的各种动作引起的。

Virtual DOM 工作过程有三个简单的步骤。

1.每当底层数据发生改变时,整个 UI 都将在 Virtual DOM 描述中重新渲染。

《面试 | 必须要会的50个React面试题》

2.然后计算之前 DOM 表示与新表示的之间的差异。

《面试 | 必须要会的50个React面试题》

3.完成计算后,将只用实际更改的内容更新 real DOM。

《面试 | 必须要会的50个React面试题》

基本知识

1、 区分Real DOM和Virtual DOM

2、 什么是React?

3、 React有什么特点?

4、 列出React的一些主要优点。

5、 React有哪些限制?

6、 什么是JSX?

7、 你了解 Virtual DOM 吗?解释一下它的工作原理。

8、 为什么浏览器无法读取JSX?

9、 与 ES5 相比,React 的 ES6 语法有何不同?

10、 React与Angular有何不同?

React 组件

11、 你怎样理解“在React中,一切都是组件”这句话。

12、 怎样解释 React 中 render() 的目的。

13、 如何将两个或多个组件嵌入到一个组件中?

14、 什么是 Props?

15、 React中的状态是什么?它是如何使用的?

16、 区分状态和 props。

17、 如何更新组件的状态?

18、 React 中的箭头函数是什么?怎么用?

19、 区分有状态和无状态组件。

20、 React组件生命周期的阶段是什么?

21、 详细解释 React 组件的生命周期方法。

22、 React中的事件是什么?

23、 如何在React中创建一个事件?

24、 React中的合成事件是什么?

25、 你对 React 的 refs 有什么了解?

26、 列出一些应该使用 Refs 的情况。

27、 如何模块化 React 中的代码?

28、 如何在 React 中创建表单

29、 你对受控组件和非受控组件了解多少?

30、 什么是高阶组件(HOC)?

31、 你能用HOC做什么?

32、 什么是纯组件?

33、 React 中 key 的重要性是什么?

React Redux

34、 3MVC框架的主要问题是什么?

35、 解释一下 Flux

36、 什么是Redux?

37、 Redux遵循的三个原则是什么?

38、 你对“单一事实来源”有什么理解?

39、 列出 Redux 的组件。

40、 数据如何通过 Redux 流动?

41、 如何在 Redux 中定义 Action?

42、 解释 Reducer 的作用。

43、 Store 在 Redux 中的意义是什么?

44、 Redux与Flux有何不同?

45、 Redux 有哪些优点?

React 路由

46、 什么是React 路由?

47、 为什么React Router v4中使用 switch 关键字 ?

48、 为什么需要 React 中的路由?

49、 列出 React Router 的优点。

50、 React Router与常规路由有何不同?

因文章篇幅过长,题目和答案已整理为PDF文档 ,如下图:

《面试 | 必须要会的50个React面试题》

《面试 | 必须要会的50个React面试题》

领取地址:https://jq.qq.com/?_wv=1027&k=5L8YfFp,扣扣裙:937717435

    原文作者:a1322674015
    原文地址: http://blog.itpub.net/69946034/viewspace-2661049/
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞