在WordPress中实现同构的JavaScript(Reaction JS)?

时间:2015-03-02 作者:INT

我即将开始一个新的项目,并希望加入React,因为我想了解更多关于它的信息,这个特定的项目将是完美的开始,因为它不是那么时间敏感和非常直接。

为了处理SEO,我收集到我需要走同构的路线(这对我来说是全新的)来呈现JS服务器端。我发现this 但我不知道如何将其应用到基于Wordpress的web应用程序中?我一直在谷歌上搜索有关如何使用Wordpress和React的信息,但实际上没有相关信息。有谁能给我提供一些建议和建议吗?

如果这对我有什么影响Bedrock 全新的Sage 主题

谢谢

5 个回复
最合适的回答,由SO网友:WraithKenny 整理而成

我不认为使用React。js无节点。js(或至少V8或rhino等)算作同构,因为同构意味着您正在构建JavaScript to run in the browser AND on the server. 具体来说,使用WordPress肯定意味着您没有使用同构javascript(其PHP软件)。

您可以使用WordPress作为REST API服务器,并使用React作为客户端。现在你可以让WordPress交付你的资产,但你也可以把它放在一个子目录中,只把它当作一个带有CMS管理区域的API应用程序,而把你的站点文件放在根目录中,只需传递配置主题即可。(SEO将成为您必须解决的另一个问题,这取决于您正在开发的应用程序的类型。)

您提到了SEO和服务器端呈现,所以我认为您收集到的部分是希望将编译后的html交付给爬虫(而不是他们无法理解的JS),但WordPress在默认情况下会这样做(虽然是使用PHP,而不是JavaScript,因此也不是同构),但如果您只关心SEO,则不需要严格地使用同构。

你可以让WordPress的主题输出你搜索引擎优化所需的一切(最低限度),然后加载你的React(或Angular或whathaveyou),用支持JavaScript的浏览器(通过引导/DOM替换)为人类构建你的应用程序。然后,您还必须注意您的路由是否与WordPress的永久链接匹配,这有点棘手。与同构不同,但足够好。

或者,您可以使用React。js只是“增强”主题(比如评论部分),但此时您主要是PHP/WordPress开发人员。

同构就像流星。js和类似的项目,让您特别避免使用PHP(并避免使用WordPress)。真的互斥。如果你真的对同构感兴趣,试试Meteor。避免使用WordPress。

SO网友:AlecRust

我认为我们离以一种非常明智的方式实现这一目标已经不远了。WordPress。com网站已already moved over 到一个由REST API和节点支持的JavaScript应用程序。js和React。

将核心WordPress软件转移到像这样的新技术需要时间,但如果您添加插件,如WordPress REST API 您应该拥有在WordPress中开始使用React所需的一切。

相关阅读:http://wesbos.com/wordpress-calypso-react/

SO网友:Yosuke

我一直在Rails中构建一个大量使用react JS的应用程序。这是一个很好的项目,因为它让我对React的工作原理有了基本的了解。知道我对React的了解,我强烈建议不要将其与WP一起使用,直到你一开始就掌握了它,我认为这会让你的学习过程更长,尝试将其编入WP。

将React与Wordpress相结合就像是将超级跑车驶离公路。也许先学开超级跑车吧。

SO网友:Raghav Tandon

这是我今天刚刚遇到的一个例子。

我们两个。com已经建立了具有相同要求的站点,其来源可在此处找到。

https://github.com/ustwo/ustwo.com-frontend

也有一个很好的描述,他们如何设置它。见下图。

Check out the architecture diagram here

免责声明:这不是一个真正的答案,但更多的是一个参考链接,应该作为评论添加,如果我有足够的信用:-)

SO网友:liammclennan

您要做的是通过放置一个节点来实现。wordpress API前面的js服务器。您需要节点。js在服务器上进行服务器端反应。

Here 是一些代码,显示如何在服务器上将wordpress内容呈现为React组件,以及如何在客户端附加相同的React组件。

请注意,在这种情况下,您可以使用wordpress创建内容,但不能用于发布。您需要从头开始作为React组件实现发布。

结束