2015-01-02 20 views
9

Ich beginne gerade ReactJS lernen und bin dabei festzustellen, ob es sich lohnt, von AngularJS für den Einsatz mit Flask zu wechseln. Ich weiß, einer der Vorteile von ReactJS ist die Art, wie renderToString funktioniert, und HTML-String für schnellere Ladezeiten und bessere SEO. Von dem, was ich gelesen habe, ist das SEO viel besser als das, was AngularJS tun kann, obwohl Google arbeitet, um crawling Javascript zu verbessern.ReactJS Server Side Rendering in Flask

Meine Frage ist, wie die SEO Vorteile mit einem Framework wie Flask funktionieren würde. Angenommen, ich habe eine Komponente wie die folgende und rendere sie einfach in mein div. Wenn ich diese Server-Seite rendern möchte, müsste ich etwas wie nodejs oder eine Python-Bibliothek verwenden, die Javascript ausführen kann? Wenn ich React.renderToString (.....) versuche und mache, tut es nichts. Wenn dies der Fall ist, machen die beworbenen Vorteile von SEO für ReactJS es nicht wirklich besser als AngularJS? Bitte helfen Sie mir das zu verstehen und wenn es möglich ist, die Javascript Server Seite mit Flask darzustellen, wie kann ich das erreichen?

var Foo = React.createClass({ 
    render: function() { 
     return (
      <div>Foo</div> 
     ); 
    } 
}); 

React.render(<Foo />, document.getElementById('foo')); 
+1

Es gibt ein paar Fragen zu reactive + php; Die Antworten sind die gleichen für Python (nur z.B. Ersetzen von PHPv8 durch Pyv8 zum Beispiel) und der äquivalente Python-Code, z.B. [dieser] (http://stackoverflow.com/a/26049289/1074592). – FakeRainBrigand

Antwort

2

Diese für Django ist eher als Flask sollte aber die zugrunde liegende Technik anzupassen leicht: https://github.com/markfinger/django-react

+0

Wissen Sie, ob es einen guten Weg gibt, dies ohne Inline-Skript zu tun? In ihrem Beispiel fügen sie den Kontext einfach in ein Inline-Skript-Tag ein. War auf der Suche nach einer Alternative, um meinen CSP glücklich zu machen. –

+0

ist es! https://github.com/keredson/bottle-react (funktioniert mit Flasche und Flasche) – keredson

0

Es ist ein Fork von django reagieren, die jetzt in einem allgemeineren Paket entwickelt hat: https://github.com/mic159/react-render. Sie müssen auch seinen Knotenservice installieren. Es kann mit jedem Python-Framework verwendet werden. Dies ist bei weitem der einfachste Weg, isomorphe Vorlagen zu haben.

Verwandte Themen