React与React Fiber有什么区别?

时间:2017-07-27 04:26:48

标签: reactjs react-fiber

我刚刚听说反应纤维准备好了。 反应和反应纤维之间的巨大差异是什么? 是否值得学习这些差异的全新概念?

5 个答案:

答案 0 :(得分:55)

React Fiber 是React核心算法的持续重新实现,它只是完全内部重写React

React Fiber是React核心的完全向后兼容重写。

React Fiber 的目标是增加其对动画,布局和手势等区域的适用性。它的标题功能是增量渲染:能够将渲染工作分成块并将其分散到多个帧中。

React Fiber 是一个虚拟堆栈框架,React Fiber是专门用于React组件的堆栈框架的重新实现。每个光纤都可以被认为是一个虚拟堆栈帧,其中来自帧的信息保存在堆内存中,并且由于信息保存在堆上,您可以控制和使用数据结构并根据需要处理相关信息。

您可以在this video找到林克拉克的精彩解释。

有关详细信息,请查看以下链接

1。What is React Fiber ?

2。React Fiber Architecture

3。What Does React 16 Mean for You?

希望这会对你有所帮助!!

答案 1 :(得分:13)

React Fiber是React核心算法的持续重新实现。反应和反应纤维之间的主要区别是这些新功能: -

  1. 增量渲染: - React v16.0包含一个完全重写的服务器渲染器。这真的很快。它支持流式传输,因此您可以更快地开始向客户端发送字节

  2. 处理渲染API中的错误: 为了使类组件成为错误边界,我们定义了一个名为componentDidCatch的新生命周期方法(错误,信息)。

  3. 从渲染中返回多个元素: 现在,通过React v16.0中的这个新功能,我们还可以返回一个元素数组,以及组件的render方法中的字符串。

  4. 门户: 门户网站提供了一种将子项呈现为存在于父组件的DOM层次结构之外的DOM节点的第一类方法。

  5. 片段: React中的一个常见模式是组件返回多个元素。片段允许您将子列表分组,而无需向DOM添加额外节点。

答案 2 :(得分:12)

几小时前发布了React 16 beta:https://github.com/facebook/react/issues/10294

重写的 React核心(内部命名为"光纤")应与现有应用保持兼容,除了一些重大更改(请参阅Github上的发行说明)。由于大多数变化都在幕后,你不需要再次学习一个全新的概念。

答案 3 :(得分:3)

这里的每个人都已经在这里提到了所有提出反应纤维的新功能。我将强调光纤正在做些什么来改善自身。实际上,React光纤将允许暂停和播放浏览器执行的不同任务。它将优先于某些任务而不是另一个任务。

例如,如果特定动画很重要,而不是在后台获取数据。它会将动画任务作为执行堆栈中的优先级,并且一旦动画完成或耗时太长就可以切换到数据获取任务。为了允许这些现代浏览器打开一个API,即requestIdleCallback,它允许任务暂停和播放。 requestIdleCallback

纤维正在使用的反应。这就是光纤在引擎盖中使用的反应,这太棒了。

注意:我可能在几点上不完全正确。如果有的话,我愿意接受任何更正

答案 4 :(得分:0)

除了大家所说的以外,我还写了一篇博客文章,从以下角度探讨了Fiber的真正含义:

  • React如何渲染预纤维
  • 光纤前有什么问题
  • 什么是纤维及其如何解决这些问题。

查看我的文章here