2016-11-01 8 views
-1

Ich frage mich, wie man eine App von React/Redux-basierten Web-Komponenten erstellen kann. Dieses Beispiel https://github.com/facebook/react/blob/master/examples/webcomponents/index.html zeigt, wie eine Web-Komponente an eine React-Komponente gebunden wird. Aber das ist nicht genau das, was ich brauche. Ich beabsichtige, eine Sammlung von "Bausteinen" wie x-dataview, x-sidebar, x-panel, x-modal zu deklarieren, die je nach Konfiguration über Attribute bestimmte Eigenschaften haben. Außerdem stellen sie öffentliche APIs zur Verfügung.React/Redux zum Erstellen von Web-Komponenten

Ich möchte sie mit React beleben. Wenn man also eine solche Sammlung hat, kann man die App in statischem HTML erstellen und konfigurieren. Daher muss sich der Verbraucher nicht mit den React-Quellen befassen, während er mit HTML und exponierten APIs zu tun hat.

Sicher kann ich montieren auf solchen benutzerdefinierten Elemente reagieren, aber es bedeutet einen separaten Redux Speicher pro einer Web-Komponente, welche das erste Prinzip der Redux verletzt:

„Der Zustand Ihrer gesamten Anwendung ist in einem Objektbaum in einem einzigen Geschäft gespeichert. "

So ist es möglich, das oben beschriebene zu erreichen, ohne aus der Philosophie von React und Redux auszubrechen?

+0

Nein. Es macht keinen Sinn. React verwaltet nicht nur eine Komponente, sondern ein gesamtes virtuelles Dom. Das ist es, was React React macht. Wenn Sie eine neue React-Wurzel für jede Komponente erstellen, werden alle Vorteile von React zunichte gemacht. Der Versuch, dies mit Redux zu tun, ist noch weniger nützlich. Beachten Sie, dass HTML-Komponenten eine Schattendomäne haben und React eine virtuelle Domadresse hat. Zu viele Doms versuchen zu dominieren. Sowohl React als auch Redux profitieren von einem unidirektionalen Datenfluss, der weder in HTML- noch in HTML-Komponenten zu finden ist. Die gewünschten Bausteine ​​sind nur React-Komponenten und Redux ist der Klebstoff, der sie in s einzelne App zusammenführt. – DDS

+0

Nach dem Lesen von Dokumenten auf REact/Redux habe ich einen ähnlichen Eindruck. Wie es von Facebook https://facebook.github.io/react/docs/web-components.html angegeben wurde "Als Entwickler können Sie React in Ihren Web-Komponenten verwenden oder Web-Komponenten in React oder beide verwenden . " aber React an mehrere Wurzeln anheften fühlt sich außerhalb der React-Philosophie an ... –

Antwort

1

Wenn diese Komponenten völlig unabhängig voneinander sind, können Sie für jeden einen separaten Redux-Speicher erstellen.

Auf diese Weise können Sie jede Komponente hinzufügen/entfernen, die Sie möchten, und das Prinzip, das Sie in Ihrem Zitat erwähnt haben, gilt immer noch - Sie denken nur an jede der Komponenten als separate Anwendung.

Wenn Sie möchten, dass die Komponenten miteinander kommunizieren, müssen Sie den Speicher jedoch untereinander teilen.

Verwandte Themen