问题描述

我即将开始一个新的项目,并希望整合 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。