2017-04-06 3 views
2

Out of the box, kommt ReactQL mit ein paar "Seiten" wie folgt definiert:Wie Code-Aufteilung mit ReactQL zu tun?

export default() => (
    <div> 
    <Helmet 
     title="ReactQL application" 
     meta={[{ 
     name: 'description', 
     content: 'ReactQL starter kit app', 
     }]} /> 
    <div className={css.hello}> 
     <img src={logo} alt="ReactQL" className={css.logo} /> 
    </div> 
    <hr /> 
    <GraphQLMessage /> 
    <hr /> 
    <ul> 
     <li><Link to="/">Home</Link></li> 
     <li><Link to="/page/about">About</Link></li> 
     <li><Link to="/page/contact">Contact</Link></li> 
    </ul> 
    <hr /> 
    <Route exact path="/" component={Home} /> 
    <Route path="/page/:name" component={Page} /> 
    <hr /> 
    <p>Runtime info:</p> 
    <Stats /> 
    <hr /> 
    <p>Stylesheet examples:</p> 
    <Styles /> 
    </div> 
); 

jedoch Home und Page nur Komponenten in der gleichen Datei definiert sind. Angenommen, ich möchte nicht den gesamten Code laden, bis Sie zu dieser Seite navigiert sind, wie kann ich diese Seiten "code-splitten" und jede dieser Seiten in einen separaten Webpack-Chunk verschieben?

Beachten Sie, dass ReactQL SSR und React-Router angeblich unterstützt does not. Ist das, was ich möchte, möglich?

Antwort

2

Ein Beispiel für Code-Splitting und SSR bei der Arbeit finden Sie unter this issue.

Ich arbeite derzeit an einer Anleitung und einer Hilfskomponente, die noch einen Schritt weiter gehen und einige Routine bieten, um dies auf eine routiniertere Weise zu tun.

Es ist sicherlich möglich, mit Reagieren Router: Siehe https://reacttraining.com/react-router/web/guides/code-splitting

https://reactql.org Update wird und hier ein Update zu veröffentlichen, wenn Sie fertig.

+1

Der Teil, der mich betroffen hat, ist ganz unten auf dieser Seite (https://reacttraining.com/reac-router/web/guides/code-splitting/code-splitting-server-rendering), die Reac-Router-Leute sagten, sie könnten kein Code-Splitting bekommen, um auf dem Server zu arbeiten. Das Beispiel, das Sie in diesem GitHub-Problem angegeben haben, ist nett, aber './Test 'ist fest codiert, so dass das Webpack es lösen kann. Wird es funktionieren, wenn du das durch eine Requisite schaffst? Ich schätze, ich warte auf Sie, um das Starterkit zu aktualisieren. Danke für Ihre Hilfe! Große Bibliothek. – mpen

+2

ReactQL erstellt ein Server-Bundle über Webpack auf die gleiche Weise wie die Client-Seite, so dass die Code-Aufteilung in beiden Umgebungen auf die gleiche Weise abgefüllt wird. Ich nehme an, die RR-Jungs haben versucht, es manuell zu tun (z. B. async Client-Seite, aber auf dem Server synchronisieren), die viel schwieriger zu vereinbaren wäre. Sie werden immer noch statische Importe für jeden 'import()' Aufruf zur Code-Aufteilung benötigen, aber das sollte kein großes Problem sein, um mit den richtigen Mustern umzugehen. Ich habe es der Roadmap hinzugefügt -> https://github.com/leebenson/reactql/issues/10 –