- React 面试题精选 Day1
- React 面试题精选 Day2
1. refs 转发是什么?
Ref 转发 是让某些组件可以使用它们接收的 ref
的特性,这些组件还可以进一步将其传递给子组件。
2. refs 回调和 findDOMNode()
哪个是首选项?
最好使用 refs 回调 而不是 findDOMNode()
API。因为 findDOMNode()
将来会阻止对 React 的某些改进。
使用 findDOMNode
的“传统”方法:
推荐的方式是:
3. 为什么 Strings Refs 被遗弃了?
如果你以前使用过 React,那么你可能会熟悉一个较旧的 API,其中的ref
属性是一个字符串,例如 ref = {textInput'}
,并且 DOM 节点作为this.refs.textInput
访问。我们建议你不要这样做,因为 String 引用有以下问题,并且被认为是旧版的。字符串引用已经在 React v16中被删除。
- 他们迫使 React 跟踪当前正在执行的组件。这是有问题的,因为它使 React 模块成为有状态的,并因此在打包 React 模块时冲突而引起奇怪的错误。
- 它们是“不可组合的” — 如果库在传递的子项上放置了引用,则用户不能在其上放置其他引用。回调引用完全可以组合。
- 他们不能和静态分析工具配合(比如 Flow)。Flow 无法猜测出框架
this.refs
上出现的字符串引用及其类型(可能不同)。 回调引用对静态分析更友好。 - 它无法像大多数人期望的那样使用“渲染回调”模式(例如)
4. 虚拟 DOM 是什么?
Virtual DOM(VDOM)是_Real DOM_的内存表示形式。 UI的表示形式保留在内存中,并与“真实” DOM同步。 这是在调用渲染函数和在屏幕上显示元素之间发生的一步。 这整个过程称为 协调。
5. 虚拟 DOM 原理
虚拟 DOM 工作原理只有三个简单的步骤。
- 无论何时任何基础数据发生更改,整个 UI 都将以虚拟 DOM 表现形式重新呈现。
- 然后,计算先前的 DOM 表现形式与新的 DOM 表现形式之间的差异。
- 一旦完成计算,将只会更新内容真正改变的那部分真是 DOM。
6. Shadow DOM 和 Virtual DOM 有什么区别?
Shadow DOM 是一种浏览器技术,主要用于确定 web components 中的变量和 CSS。Virtual DOM 是由浏览器 API 之上的 JavaScript 库实现的概念。
7. React Fiber 是什么?
Fiber 是React v16 中新的 协调 引擎或核心算法的重新实现。React Fiber 的目标是提高其在动画、布局、手势、暂停、中止或重用工作的能力,以及为不同类型的更新分配优先级等方面的适用性和新的并发原语。
8. React Fiber 的主要设计目的是什么?
React Fiber 的目标是提高其对动画、布局和手势等领域的适用性。它的 headline 功能是增量渲染:能够将渲染工作拆分为多个块并将其分布到多个帧中。
9. 受控组件是什么?
在用户输入后能够控制表单中输入元素的组件被称为“受控组件”,比如每一个状态概念都将有一个相关的处理函数
例如下面的例子中,为了将名字转换为全大写,我们使用 handleChange
:
10. 非受控组件是什么?
受控组件是那些把状态维护在其内部的组件,当你想要获得当前值时需要使用 ref 查询 DOM。这有一点像传统的 HTML。
在下面的 UserProfile
组件中,name
输入被使用 ref
获取:
大多数场景中,我们建议使用受控组件来代替表单组件。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!