React面试题总结

2021年11月22日 阅读数:8
这篇文章主要向大家介绍React面试题总结,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。


React面试题总结内容主要包括基础知识,React 组件,React Redux,React 路由javascript

基本知识

1. 区分Real DOM和Virtual DOM前端

Real DOMjava

Virtual DOMreact

更新缓慢。程序员

更新更快。面试

能够直接更新 HTML。浏览器

没法直接更新 HTML。服务器

若是元素更新,则建立新DOM。框架

若是元素更新,则更新 JSX 。ide

DOM操做代价很高。

DOM 操做很是简单。

消耗的内存较多。

不多的内存消耗。

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的一个例子:

render(){
return(
<div>
<h1> Hello World from Edureka!!</h1>
</div>
);
}


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

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

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

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

2)而后计算以前 DOM 表示与新表示的之间的差别。

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

8. 为何浏览器没法读取JSX?

浏览器只能处理 JavaScript 对象,而不能读取常规 JavaScript 对象中的 JSX。因此为了使浏览器可以读取 JSX,首先,须要用像 Babel 这样的 JSX 转换器将 JSX 文件转换为 JavaScript 对象,而后再将其传给浏览器。

9. 与 ES5 相比,React 的 ES6 语法有何不一样?

如下语法是 ES5 与 ES6 中的区别:

1)require 与 import

// ES5
var React = require('react');

// ES6
import React from 'react';


2)export 与 exports

// ES5
module.exports = Component;

// ES6
export default Component;


3)component 和 function

// ES5
var MyComponent = React.createClass({
render: function() {
return
<h3>Hello Edureka!</h3>;
}
});

// ES6
class MyComponent extends React.Component {
render() {
return
<h3>Hello Edureka!</h3>;
}
}


4)props

// ES5
var App = React.createClass({
propTypes: { name: React.PropTypes.string },
render: function() {
return
<h3>Hello, {this.props.name}!</h3>;
}
});

// ES6
class App extends React.Component {
render() {
return
<h3>Hello, {this.props.name}!</h3>;
}
}


5)state

// ES5
var App = React.createClass({
getInitialState: function() {
return { name: 'world' };
},
render: function() {
return
<h3>Hello, {this.state.name}!</h3>;
}
});

// ES6
class App extends React.Component {
constructor() {
super();
this.state = { name: 'world' };
}
render() {
return
<h3>Hello, {this.state.name}!</h3>;
}
}


10. React与Angular有何不一样?

主题

React

Angular

体系结构

只有 MVC 中的 View

完整的 MVC

渲染

能够在服务器端渲染

客户端渲染

DOM

使用 virtual DOM

使用 real DOM

数据绑定

单向数据绑定

双向数据绑定

调试

编译时调试

运行时调试

做者

Facebook

Google

React面试题总结全部内容都已经整理成PDF文档,须要能够​​点击这里​免费领取,还包括前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档,均可以避免费领取!

React 组件

1. 你理解“在React中,一切都是组件”这句话。

2. 解释 React 中 render() 的目的。

3. 如何将两个或多个组件嵌入到一个组件中?

4. 什么是 Props?

5. React中的状态是什么?它是如何使用的?

6. 区分状态和 props

7. 如何更新组件的状态?

8. React 中的箭头函数是什么?怎么用?

9. 区分有状态和无状态组件。

10. React组件生命周期的阶段是什么?

11. 详细解释 React 组件的生命周期方法。

12. React中的事件是什么?

13. 如何在React中建立一个事件?

14. React中的合成事件是什么?

15. 你对 React 的 refs 有什么了解?

16. 列出一些应该使用 Refs 的状况。

17. 如何模块化 React 中的代码?

18. 如何在 React 中建立表单

19. 你对受控组件和非受控组件了解多少?

20. 什么是高阶组件(HOC)?

21. 你能用HOC作什么?

22. 什么是纯组件?

23. React 中 key 的重要性是什么?

React面试题总结_React

React Redux

1. MVC框架的主要问题是什么?

2. 解释一下 Flux

3. 什么是Redux?

4. Redux遵循的三个原则是什么?

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

6. 列出 Redux 的组件。

7. 数据如何经过 Redux 流动?

8. 如何在 Redux 中定义 Action?

9. 解释 Reducer 的做用。

10. Store 在 Redux 中的意义是什么?

11. Redux与Flux有何不一样?

12. Redux 有哪些优势?

React面试题总结_React_02

React 路由

1. 什么是React 路由?

2. 为何React Router v4中使用 switch 关键字 ?

3. 为何须要 React 中的路由?

4. 列出 React Router 的优势。

5. React Router与常规路由有何不一样?

React面试题总结_前端_03

须要能够​​点击这里​免费领取,还包括前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档,均可以避免费领取!

React面试题总结_javascript_04