2015-01-02 147 views
9

我剛剛開始學習ReactJS,並確定它是否值得從用於Flask的AngularJS切換。我知道ReactJS的好處之一就是renderToString的工作方式是呈現HTML字符串,以加快載入時間並改善搜索引擎優化。從我讀到的是SEO比AngularJS可以做的好得多,儘管谷歌正在努力提高抓取JavaScript。ReactJS Flask服務器端渲染

我的問題是關於SEO優勢如何與Flask等框架一起工作。假設我有一個像下面這樣的組件,並簡單地將它呈現給我的div。如果我想呈現這個服務器端,我需要使用像nodejs或一些可以執行Javascript的Python庫嗎?如果我嘗試並執行React.renderToString(.....),它不會執行任何操作。如果是這種情況,那麼ReactJS的搜索引擎優化的廣告好處並不比AngularJS更好?請幫助我理解這一點,如果它有可能使用Flask呈現Javascript服務器端,我該如何去做到這一點?

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

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

有幾個問題詢問有關react + php; python的答案是相同的(例如,用pyv8代替PHPv8),而equivilent python代碼例如[這一個](http://stackoverflow.com/a/26049289/1074592)。 – FakeRainBrigand

回答

2

這是Django的,而不是瓶,但應該很容易適應的基本技術:https://github.com/markfinger/django-react

+0

您是否知道是否有一種不使用內聯腳本的方式來執行此操作?在他們的示例中,他們只是將上下文放入內聯腳本標記中。正在尋找替代方案來保持我的CSP快樂。 –

+0

是! https://github.com/keredson/bottle-react(工作瓦/瓶和瓶) – keredson

0

有一個叉Django的反應現在已經演變成一個更通用的軟件包:https://github.com/mic159/react-render。您還需要安裝其節點服務。它可以用於任何python框架。 這是迄今爲止擁有同構模板的最簡單方法。