問題描述
我即將開始一個新的專案,並希望整合 React,因為我想了解更多關於它,這個具體專案將是完美的開始,因為它不是時間敏感和相當直截了當。
為了照顧 SEO,我收集了我需要去同步的路線 (這對我來說是全新的) 渲染 JS 伺服器端。我發現 this,但我無法弄清楚我如何應用這個基於 WordPress 的網路應用程式?我一直在搜尋關於如何使用 Wordpress 和 React 的資訊,但沒有任何資訊。任何有更多洞察力的人都能給我一些提示和指標?
如果有任何區別,我使用 Bedrock 與全新的 Sage 主題。
謝謝!
最佳解決方案
我不認為使用沒有 Node.js(或至少 V8 或犀牛等) 的 React.js 計數為同構,因為同構意味著您正在構建 JavaScript 以在瀏覽器和伺服器上執行。具體來說,使用 WordPress 肯定意味著你沒有做同構的 javascript(它的 PHP 軟體) 。
您可以使用 WordPress 作為 REST API 伺服器,並使用 React 作為客戶端。現在,您可以讓 WordPress 提供資產,但您也可以將其放在子目錄中,並將其作為具有 CMS 管理區域的 API 應用程式,同時將您的站點檔案放在根目錄中,by-passing 配置主題。 (SEO 將成為一個單獨的問題,您必須解決,具體取決於您正在開發的應用程式的型別。)
你提到 SEO 和 server-side 渲染,所以我把它收集的部分是你希望編譯的 html 傳遞到爬網程式 (而不是他們不會理解的 JS),但 WordPress 預設情況下這樣做 (儘管使用 PHP,但不是 JavaScript,因此,不是同構的),但如果您的關注只是 SEO,則不需要同構。
您可以讓 WordPress 的主題輸出您所需要的所有 SEO(最低限度),然後載入您的 React(或 Angular 或 whathaveyou),為使用 JavaScript 啟用的瀏覽器 (透過引導/DOM 替換) 為人類構建您的應用程式。然後,您必須另外關心您的路線與 WordPress 的固定連結相匹配,這有點棘手。不同於同構,但足夠好。
或者,您可以使用 React.js 只有’enhance’ 的主題 (如評論部分),但是您現在大多是 PHP /WordPress 開發人員。
同構是像 Meteor.js,像這樣的專案,讓你特別避免 PHP(並避免 WordPress) 。真正的排他性如果您真的對同構異常感興趣,請嘗試使用 Meteor.js,並避免使用 WordPress 。
次佳解決方案
我認為我們距離能夠以合理的方式實現這一點並不遙遠。 WordPress.com 網站將 already moved over 提供給由 REST API(Node.js 和 React) 提供支援的 JavaScript 應用程式。
將核心 WordPress 軟體轉移到這樣的新技術將需要時間,但是如果您新增了 WordPress REST API 等外掛,那麼您應該擁有一切您需要的功能,才能在 WordPress 中開始使用 React 。
相關閱讀:http://wesbos.com/wordpress-calypso-react/
第三種解決方案
我已經在 Rails 中構建了一個應用程式,它使用了大量的反應 JS 。這是一個很好的專案,因為它給了我關於 React 如何工作的基本瞭解。知道我對 React 的瞭解,我強烈建議您不要在 WP 中使用它,直到您最初掌握它,我認為這將使您的學習過程更長時間嘗試將其侵入 WP 。
結合反應與 Wordpress 感覺像採取超級跑車 off-roading 。也許先學習駕駛超跑跑車。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。