【发布时间】:2017-05-05 23:42:19
【问题描述】:
如果 Cycle 使用虚拟 dom,React 也是如此,那为什么我不能在 Cycle.js 应用程序中使用 React Components?
是否可以使用将现有的 React 组件包装到 Cycle.js 组件中?
这个问题涉及到:Higher order FRP with React - why is it not happening?
【问题讨论】:
-
我不太清楚你为什么在这里问这个问题,而不是在周期问题跟踪器上。这个问题有一个非常高的“只能用意见来回答”的因素,所以感觉很离题。显而易见的问题是“您的说法是否真的正确”。他们是否使用完全相同的虚拟 dom(有很多)具有完全相同的 API 和编程模型(同样,有很多)?如果他们不这样做,你就有答案了。
-
对,但为什么他们不使用相同的 VDOM 呢?将 Cycle.js 与 React 一起使用是否有意义 - 我怀疑可能不是?如果不是,为什么不呢?为什么 Cycle.js 与 React 不兼容?仅仅是因为它使用了不同的 VDOM 吗?还是还有其他原因?也许即使它使用相同的 VDOM,同时使用 React 和 Cycle.js 仍然没有意义,如果是这样的话,我想知道为什么不呢?为什么不在 Cycle.js 中重用现有的 React 组件?为没有太多好处(现有 React 组件的可重用性)付出太多代价(就包装复杂性而言)?
-
"virtual dom" 只是一个概念,您可以通过一百万种方式实现该概念,专门针对代码需求量身定制。一个更好的问题是“他们为什么要使用完全相同的虚拟 dom 数据结构和 API?他们做的事情完全一样吗?”,而不是反过来考虑。如果他们不做同样的事情,那么使用相同的虚拟 dom 实现是低效的(要么是由于缺乏专用的 API 调用,要么是由于不需要的功能膨胀)
-
有趣点!
-
回答这个评论线程中提出的问题,React 是最糟糕的虚拟 DOM 库之一,可用作框架中的 UI 层。请注意,作为一个图书馆本身,它很棒,因为它的社区支持。但是,作为框架中的一个层,它在性能和大小上甚至都无法接近最好的虚拟 DOM。还有多个其他虚拟 DOM 库,仅举几例:Inferno、snabbdom、virtual-dom、Bobril 等,它们比 React 更快更小。此外,React 有自己的事件委托系统,在 Cycle.js 中将被完全绕过。我们处理事件的方式不同。