Kombinieren von reagieren und jade

Arbeite ich an einem isomorph javascript app mit express + reagieren. Angefangen haben wir mit jade für server-side-templates für statische Inhalte, aber die Kombination der beiden wird schnell unhandlich. Wir haben am Ende mit etwas wie dieses:

In der express-Routen:

router.get("/", function(req, res) {
  var webpackStats = require('../../config/webpack-stats.json');
  var reactHtml = React.renderToString(HiwApp({}));
  var slideshowHtml = React.renderToString(slideshowApp({}));
  var config = {
    webpackStats: webpackStats,
    reactOutput: reactHtml,
    slideshowHtml: slideshowHtml
  };
  res.render("how_it_works/howitworks", config);
});

In Jade:

body
  .company-logo.center
  #react-main-mount
    != reactOutput
  include ./content_block_1.jade

  include ./content_block_2.jade

  #slideshow-main-mount
    != slideshowHtml

Dies ist sehr spröde-wenn wir wollen, dass jsx dann ein jade-template dann mehr jsx, wir haben sicher zu stellen, dass die richtige Reihenfolge.

Meine Idee ist, es zu tun alle mit jsx. Ich weiß, es ist zu Reagieren.renderToStaticMarkup für diese Art der Sache, aber das löst nicht das problem der Vermischung dynamische mit statischen Seiten.

Die großen Fragen: wenn wir uns entscheiden, all dies zu tun mit jsx (layout sagen.jsx enthält alle Komponenten), dann rufen Sie React.renderToString(App({});wird dies einen großen performance-hit? Wenn ja, gibt es einen besseren Weg, es zu tun, um sich gut kombinieren, statische und dynamische Blöcke?

InformationsquelleAutor der Frage johnnyutah | 2015-04-01

Schreibe einen Kommentar