Wenn ich eine Web-Anwendung mit reactjs machen will, dass nicht eine einzige Seite ist. Sollte ich alle react-Code in einer einzigen Datei kompilieren und laden Sie es auf allen Seiten der Anwendung, dann verwenden Sie die Funktion, die ich verfügbar machen, um die erforderlichen Komponenten zu rendern?Verwendung reagieren, ohne eine Router Komponente
Beispiel einer HTML-Datei
<div id="Clock" data-react="Clock"></div>
<div id="HelloWorld" data-react="HelloWorld"></div>
Beispiel index.js
import React from 'react';
import ReactDOM from 'react-dom';
import Clock from './Clock';
import HelloWorld from './HelloWorld';
import OtherComponent from './OtherComponent';
const APPS = {
Clock,
HelloWorld,
OtherComponent
};
const MyReactRender = react => {
let component = react.getAttribute('data-react');
let App = APPS[component];
if(App != undefined) {
ReactDOM.render(<App />, document.getElementById(component));
}
}
document.querySelectorAll('[data-react]').forEach(MyReactRender);
Ich würde einfach mit 'if (document.getElementById ('Clock')) gehen {/ * activate react component * /}' –
Danke für die Eingabe. Aber wäre es richtig, diese Methode zu verwenden, da die Anwendung viel wachsen kann? – MrGilbertMan
Nein, es ist definitiv keine empfohlene Übung, aber die einzigen wirklichen Nachteile sind die Größe des Bündels und eine ständig steigende Anzahl von Wenns. Ein besserer Weg könnte darin bestehen, Webpacks zu verwenden, um verschiedene Teile der Anwendungen zu bündeln und sie nur auf jeder anderen Seite zu laden. –