20 个 React 基本问题助你学习
学习 React 在最初几周可能会很有挑战性。要了解如何使用 props,何时使用类组件或函数组件。我仍在学习 React,我发现每周问自己一些基本的初学者问题很有帮助。这不仅能帮助我理解基础知识,而且重复学习还能让我更容易回忆。这周我使用了一些我遇到的最喜欢的资源。我会发布这些问题和答案,以及我获取它们的来源链接。目前我不会深入研究 redux 或 hooks,只讨论一些基本的常见 React 问题。随着我学习的深入,我一定会写第二部分,其中包含更复杂的问题。
如果你也在学习 React,你可以每周五问自己这些问题,随着时间的推移,你会更容易回忆起答案。不要等到准备面试时才匆匆浏览它们。
React 问题
1)什么是 React
- 前端 Javascript 库
- 由 Facebook 于 2011 年开发
- 遵循基于组件的方法
- 它允许您创建可重复使用的 UI 组件
- 用于开发复杂、交互式的 Web 和移动 UI
- 2015 年开源,拥有强大的基础和庞大的社区。
✨来源链接
2)React 的特性
- 使用虚拟 Dom
- 是否服务器端渲染
- 遵循单向数据流,即单向数据绑定。React 组件之间的数据流是单向的(仅从父组件到子组件)。
- 使用可重复使用/可组合的 UI 组件来开发视图。
3)React 的优缺点
优势
- 很容易知道组件是如何渲染的,只需查看渲染函数即可。
- JSX 使组件代码更易于阅读。此外,它还能轻松查看组件的布局以及组件之间的连接/组合方式。
- 您可以在服务器端渲染 React。
- 它很容易测试,并且您还可以集成一些像jest这样的工具。
- 它确保了可读性并使可维护性更容易。
- 您可以将 React 与任何框架(Backbone.js、Angular.js)一起使用,因为它只是一个视图层。
缺点
- 它只是一个视图层,您仍然需要插入用于 Ajax 请求、事件等的代码。
- 图书馆本身相当大。
- 学习曲线可能很陡峭。
4)什么是 JSX
- JSX 代表 Javascript XML 可扩展标记语言。
- 利用类似 HTML 的模板语法来发挥 Javascript 的表现力。
- 使 HTML 易于理解。
- 它很强大
- 提升 JS 性能。
- JSX 表达式必须只有最外层元素。
5)什么是虚拟DOM
虚拟 DOM (VDOM) 是一种编程概念,其中 UI 的理想或“虚拟”表示保存在内存中,并通过诸如 ReactDOM 之类的库与“真实” DOM 同步。此过程称为协调。
6)虚拟Dom如何工作?
- 每当任何底层数据发生变化时,整个 UI 都会以虚拟 Dom 表示形式重新渲染。
- 然后计算先前的 DOM 表示和新的 DOM 表示之间的差异。
- 一旦计算完成,真实的 DOM 将仅更新实际发生变化的内容。
7)虚拟 DOM 与真实 DOM 的区别
虚拟 DOM | 真实 DOM |
---|---|
更新速度更快 | 更新速度较慢 |
无法直接更新 HTML | 可以直接更新HTML |
如果 JSX 元素渲染则更新 | 如果元素更新,它会创建一个新的 DOM |
无 DOM 操作开销 | DOM 操作非常昂贵 |
无内存浪费 | 内存浪费太多 |
8)为什么浏览器无法读取 JSX
- JSX 不是常规的 JavaScript
- 浏览器只能读取 Javascript 对象。
- JSX 文件在到达浏览器之前通过 JSX Transformer 链接 Babel 转换为 JS 对象。
9)React 与 Angular 有何不同?
话题 | 反应 | 角度 |
---|---|---|
1)架构 | 仅查看 MVC | 完整的 MVC |
2)渲染 | 服务器端渲染 | 客户端渲染 |
3)DOM | 使用虚拟 DOM | 使用真实 DOM |
4)数据绑定 | 单向数据绑定 | 双向数据绑定 |
5)调试 | 编译时调试 | 运行时调试 |
6)作者 | 谷歌 |
10)“在 React 中一切都是组件”,解释一下?
- 首先,组件是 React 用户界面的构建块。
- 组件可让您将 UI 拆分为独立的、可重复使用的部分,并单独考虑每个部分。
- 从概念上讲,组件就像 JavaScript 函数。它们接受任意输入(称为“props”),并返回描述屏幕上应显示内容的 React 元素。
11)解释渲染函数的用途
- 渲染函数用于更新用户界面
- 它返回一个单独的 React 元素,它是原生 DOM 组件的表示。
- 要将 React 元素渲染到根 DOM 节点,请将两者都传递给 ReactDOM.render()
const title = <h1>Hello, world</h1>;
ReactDOM.render(title, document.getElementById('root'));
12)React 中的 props 是什么
- Props 代表组件的属性。
- 是纯粹的,即不可变的。
- 始终从父组件传递到子组件。
- 用于呈现动态数据
13)React 中的状态是什么
- State 是 React 中的内置对象,可帮助组件创建和管理其数据。
- 确定组件的渲染和行为。
- 创建动态和交互式组件
- 可以通过 this.state() 访问
- 可以使用 this.setState() 更新状态
14)React 中的事件是什么
- 事件是特定动作(例如鼠标点击、鼠标悬停、键盘按下等)触发的反应的结果。
- React 中的事件类似于原始 Javascript 事件。
15)在 React 中模块化代码
- 这只是意味着将您的代码放入独立的模块或文件中。
- 您可以使用导入和导出方法并使用来自不同组件的组件。
16)受控组件和非受控组件之间的区别
受控组件 | 不受控制的组件 |
---|---|
不维护自己的状态 | 保持自己的状态。 |
{数据由父组件控制 | 数据由 DOM 控制 |
通过 props 获取当前值并通过回调通知更改 | Refs 获取其当前值。 |
17)什么是高阶组件?
- 包装其他组件的自定义组件。
- 它们接受动态提供的子组件。
- 是纯函数。
18)React 中的键有什么意义?
- 用于识别唯一的虚拟 DOM 元素及其驱动 UI 的相应数据。
- 通过回收现有的 DOM 元素帮助 React 优化渲染。
- 键必须是唯一的数字或字符串。
- 应用程序的性能提高。
19)如何使用 React 标签元素
您不需要for=""
像在 HTML 中那样使用htmlFor=""
属性。
<label htmlFor = {'name'}> </label>
<input type={'text} id={'name'}/>
20)为什么在 React 中使用箭头函数
- 当你希望 this 引用父组件时,箭头函数很有用。
- 箭头函数没有它自己的
this
。 this
将从其封闭范围继承。
综上所述
我把找到问题和答案的资源链接了起来。你可以用它们来更深入地理解你第一次不明白或答不出来的问题。坚持每天问自己3个问题,看看你的学习进度如何。你越能不用谷歌搜索就能详细解释这些问题,你的水平就越高。
如果你觉得这篇文章有用,请分享给你的同行或学习 React JS 的初学者,或许这些问题会对他们有所帮助。你也可以请我喝杯咖啡。🙂
文章来源:https://dev.to/tracycss/20-basic-react-questions-to-help-you-as-you-learn-5eih