2016-12-20 60 views
2

我的團隊開發了一個django網站,其中有很多網頁完全沒有使用javascript,或者可能使用小jQuery操作。我們希望嘗試使用反應庫來加快我們的頁面並添加頁面導航,而無需整頁重新加載(我們選擇反應是因爲我們實施了一些SPA網站,並且我們喜歡它)。我們的頁面也應該與禁用js一起工作。如何開始在現有的django網站上使用反應

我想從一個頁面開始,其上有5個窗體。如果有任何表單被提交,那麼頁面將被重新加載,字段中填充的數據將會丟失,並且運行緩慢。我認爲實現在Ajax上發送數據並在服務器回答後更改一些html。

每個反應教程都說要在裏面編寫帶有html標記的jsx組件,將它與babel轉換爲純js並在頁面加載時動態添加頁面。或者,如果您想要在服務器上呈現網頁,則需要使用獨立節點服務器。但我已經有一個強大的django模板引擎來渲染服務器端的模板,我也需要使用特定的django來渲染模板,比如多語言內容,用戶變量等。

我可以在服務器端使用django完全渲染頁面嗎?加載說反應,該特定的div它是一個組件與初始狀態和現有的HTML標記?或者也許你可以告訴我另一種解決方案,而不必完全重寫我的網站。謝謝。

回答

1

嗯,那種。每個反應應用程序都從指定要呈現的根HTML元素開始。如果你只想渲染你網站的一部分,只需指定一個涵蓋你想要的部分的元素。事情是這樣的:

ReactDOM.render(<MyMainComponent />, document.getElementById('myReactSection')); 

然而,這樣做,在沒有任何現有的HTML將被覆蓋(https://facebook.github.io/react/docs/react-dom.html#render)。所以你需要React來重新渲染已經存在的HTML。

而且,你不NEED通天寫反應代碼,它只是非常有用的(與webpack聯)生成一個JavaScript包文件發送到使用真棒新的,最初寫的客戶端ES6語法(https://babeljs.io/learn-es2015/

+0

任何想法(或參考)什麼是「理想」的方法?用React完全替代Django模板,或者僅使用React渲染頁面的一部分,併爲其餘部分使用Django模板引擎?最近我一直在閱讀關於如何將React與Django集成在一起的看法,看起來這兩種方法彼此完全不同。很高興聽到@ taylorc93或其他人的想法 – Anupam

相關問題