問題描述

我即將開始一個新的項目,並希望整合 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。