如果你喜欢编程,那么你肯定不能否认你不知道 React 的流行。React 是一个非常流行的 JavaScript 库,它在世界范围内蓬勃发展,很多行业都在研究它。无论你是专业程序员还是初学者,了解 React 以及
ReactJS面试问题和答案肯定会给你带来在职业生涯中处于领先地位的优势。
这个流行的JavaScript库现在已成为行业在其上构建前端应用程序的最佳选择之一。React 加快了开发过程,该库的许多功能使程序员的开发任务变得更加容易。
ReactJS常见的面试题和答案有哪些?如果你是一个有兴趣在 React 中建立你的职业生涯的人,那么你肯定需要为面试做好准备。在这篇博客中,我们将讨论一些
有助于通过面试的
ReactJS面试问题。
1. React 是如何工作的?虚拟 DOM 如何在 React 中工作?
ReactJS最新面试题和答案有哪些?React 适用于虚拟 DOM。当组件中的状态发生变化时,它会运行一个差异算法。这标识了虚拟 DOM 中已更改的内容。下一步是协调,它用差异结果更新 DOM。
HTML DOM 具有 HTML 文档结构所允许的树结构形状。由于大型应用程序的大小,DOM 树很大。如今,我们更多地关注动态应用程序(单页应用程序),因此经常更改 DOM 树非常重要。这是一个真正的表现和发展的痛苦。
虚拟 DOM 是 HTML DOM 的抽象。虚拟 DOM 是轻量级的,它与浏览器特定的实现细节分离。Virtual DOM 不是由 React 开发的,而是使用它并免费提供的。ReactElement 存在于虚拟 DOM 中。它使这里成为基本节点。一旦你定义了元素,ReactElements 就会被渲染到“真实”的 DOM 中。
一旦 React diff 算法中的状态发生变化,就会识别出发生了什么变化。然后用 diff 的结果更新 DOM。虚拟 DOM 比常规 DOM 快。
2.什么是JSX?
JSX 代表 JavaScript XML。它是 JavaScript 的语法扩展,具有 JavaScript 的全部功能。JSX 创建 React “元素”。你将看到用花括号括起来的 JSX 语法。编译后 JSX 表达式成为常规 JavaScript 对象,这意味着你可以在 if 语句和 for 循环中使用 JSX,将其分配给一个变量,将其作为参数接受并从函数中返回。
查看下面给出的示例,了解 React 中 JSX 的语法。
const element = (
<h1 className="greeting">
Hello World!
</h1>
);
下面给出了使用 createElement 的等效项......
const element = React.createElement(
'h1',
{"className":"greeting"},
'Hello World!'
);
3.什么是ReactDOM,ReactDOM和React有什么区别?
ReactJS面试问题和答案介绍:早期的 ReactDOM 是 React 的一部分,但后来 React 和 ReactDOM 被分成了两个不同的库。基本上,ReactDOM 就像是 React 和 DOM 之间的粘合剂。我们可以用它做一件事:用 ReactDOM 挂载。
ReactDOM.findDOMNode() 是 ReactDOM 的另一个有用功能,可用于访问 DOM 元素。对于其余的事情,React 就在那里。React 用于定义和创建元素,用于生命周期钩子等。
4. 类组件和功能组件的区别?
在类组件中,你可以使用附加功能,例如本地状态和生命周期挂钩。添加更多内容,以启用你的组件并直接访问我们的商店,从而保持状态。
当组件刚刚接收到 props 并将它们渲染到页面时。它被称为“无状态组件”,可以使用纯函数。
下面是一个无状态的功能组件的例子......
import React from 'react'
const Booklist = books => (
<ul>
{books.map(({ title, author}) =>
{title}--{author}
)}
</ul>
)
5. state 和 props 有什么区别?
ReactJS最新面试题和答案有哪些?当组件在 React 应用程序中安装时,状态数据结构以默认值开始。随着时间的推移,它会发生变异,主要是由于用户事件。Props 是属性的简写,是一个组件配置。基本上,props 就像一个定义组件如何相互通信的参数。道具是不可变的,就组件接收它们而言。
一个组件不能改变它的 props,但它负责把它的子组件的 props 放在一起。道具不必只是数据-回调函数可以作为道具传入。
我们也可以有默认的道具,这样即使父组件没有向下传递道具,道具也会被设置。props 和 state 做同样的事情,但两者的使用方式不同。大多数组件将是无状态的。道具用于将数据从父级传递到子级或在组件本身之间传递。
道具是不可变的,不能改变。另一方面,状态是可变的或者数据会改变。这对于用户输入特别有用。
6. 什么是高阶组件?
ReactJS常见的面试题和答案介绍:它是 React 中用于重用组件逻辑的高级技术。HOC 不是 React API 的一部分。这些是从 React 的组合性质中出现的模式。
基本上,高阶组件是接受一个组件并返回一个新组件的函数。HOC 允许你重用代码、逻辑和引导程序抽象。在第三方 React 库中,HOC 很常见。
最常见的是 Redux 的 connect 函数。HOC 不是简单地共享实用程序库和简单的组合,而是在 React 组件之间共享行为的最佳方式。你可以在代码重构中利用 HOC。当你在不同的地方一遍又一遍地重复相同的代码时,请使用可重用的 HOC 来重构代码。
7.什么是Redux?
ReactJS面试问题和答案解析:Redux 是将整个应用程序的状态存储在单个存储中的好方法。当你的应用程序很小时,你在处理状态时不会遇到问题。但是当它开始增长时,你会发现各个组件中的状态变得难以管理。Redux 在这里解决了你的问题。
Redux 主要作用于三个组件:
- Action:Actions 是将数据从应用程序发送到商店的信息负载。操作是商店的唯一信息来源。我们使用 store.dispatch() 将它们发送到商店。
- Reducer:Reducer 指定应用程序的状态如何响应发送到存储的操作而变化。Actions 描述发生了什么,但它不描述应用程序的状态如何变化。基本上,reducer 确定状态将如何更改为操作。
- Store:Store 对象将 action 和 reducer 结合在一起。你可以通过getState()访问状态;它允许通过调度(动作)更新状态;
商店包含 javascript 对象。你可以通过从应用程序中触发操作来更改状态。之后,你可以为这些操作编写减速器并修改状态。整个过渡都保存在减速器内部,它不应该有任何副作用。
ReactJS常见的面试题和答案解释:在 Redux 中,你的应用程序状态应该只有一个真实来源。它可以是 UI 状态(例如哪个状态是活动的)或数据状态(例如用户配置文件详细信息)。这些数据被 Redux 保留在一个 redux 调用 store 的闭包中。
请注意,你只能在 Redux 中创建单个存储。
{
first_name: 'John',
last_name: 'Doe',
age: 28
}