2016-12-20 1 views
1

Wenn Cycle virtual dom verwendet und auch React, warum kann ich React Components nicht in einer Cycle.js App verwenden?Warum kann ich keine React-Komponente in einer Cycle.js-App verwenden?

Wäre es möglich, existierende React-Komponenten in Cycle.js-Komponenten zu integrieren?

Diese Frage bezieht sich auf: Higher order FRP with React - why is it not happening?

+1

Ich bin nicht ganz sicher, warum Sie das hier fragen, anstatt auf den Zyklus Problem Tracker. Diese Frage hat einen sehr hohen "Faktor, der nur mit Meinungen beantwortet werden kann". Die offensichtliche Frage ist "ist dein Anspruch tatsächlich wahr?". Verwenden sie genau das gleiche virtuelle Dom (es gibt viele) mit genau den gleichen APIs und Programmiermodellen (wieder gibt es viele)? Wenn nicht, haben Sie Ihre Antwort. –

+0

Richtig, aber warum verwenden sie nicht den gleichen VDOM? Wäre es sinnvoll, Cycle.js mit React überhaupt zu benutzen - ich vermute, vielleicht nicht? Wenn nicht, warum nicht? Warum ist Cycle.js nicht mit React kompatibel? Nur weil es einen anderen VDOM verwendet? Oder gibt es noch einen anderen Grund? Vielleicht, selbst wenn es denselben VDOM verwenden würde, macht es immer noch keinen Sinn, React und Cycle.js zusammen zu benutzen. Wenn das der Fall ist, frage ich mich, warum nicht? Warum nicht vorhandene React-Komponenten in Cycle.js wiederverwenden? Wäre es ein zu hoher Preis (hinsichtlich der Komplexität der Verpackung) für einen nicht zu großen Nutzen (Wiederverwendbarkeit der vorhandenen React Components)? – jhegedus

+0

"virtual dom" ist nur ein Konzept, und Sie können dieses Konzept auf eine Million Arten implementieren, die speziell auf die Bedürfnisse des Codes zugeschnitten sind. Eine viel bessere Frage wäre, "warum würden sie die exakt gleiche virtuelle Domstruktur und API verwenden? Tun sie genau das gleiche?", Anstatt anders darüber nachzudenken. Wenn sie dasselbe nicht tun, ist die Verwendung der gleichen Virtual-Dom-Implementierung ineffizient (entweder aufgrund fehlender dedizierter API-Aufrufe oder Aufblähung von Funktionen, die nicht benötigt werden). –

Antwort

2

Da die Unterstützung für Web Components Reagieren des fehlt. Siehe https://github.com/facebook/react/issues/7901 und http://staltz.com/react-could-love-web-components.html

Es ist technisch möglich, in Cycle.js Reagieren Unterstützung zu bauen, aber dann können Sie auch anfangen zu fragen, ob andere Frameworks wie Ember oder Winkel- oder Aurelia sollten tun das gleiche aus der Box starten. Dann könnte die Frage noch erweitert werden, indem Aurelia-Komponenten in Ember unterstützt werden. Die Unterstützung von "Foo" -Komponenten im "Bar" -Framework ist daher kontraproduktiv. Web-Komponenten sind der vernünftige Weg, damit umzugehen.

+0

Danke! Müssen Sie das untersuchen. – jhegedus

+0

Hmm https://facebook.github.io/react/docs/web-components.html – jhegedus

+0

"Um eine Webkomponente in React zu verwenden, müssen Sie einen Ereignis-Listener direkt an die React-Referenz für diese WC anhängen." Das ist also "nur" ein Leistungsproblem? – jhegedus

2

Cycle.js ist generisch genug, um mit anderen Frameworks/Bibliotheken verwendet zu werden. Tatsächlich gibt es redux-cycle-middleware, mit dem Sie React/Redux zusammen mit Cycle.js verwenden können. Mit dieser Middleware würden Sie Cycle nicht verwenden, um DOM-Nebenwirkungen zu behandeln. Stattdessen würden Sie React verwenden. Wenn Sie dann mit anderen Nebeneffekten (HTTP, WebSockets, allem, was nicht DOM ist) umgehen müssen, können Sie Cycle.js verwenden.

Verwandte Themen