如何预呈现使用React的单页应用程序?

时间:2018-03-18 19:18:04

标签: node.js reactjs prerender

在我的应用程序中,用户有自己的个人资料页面,其中有他们的个人资料图片(我使用反应路由器来处理客户端的路由)。

我想要做的是:当用户在messenger / slack / twitter上发送链接到他的个人资料时,链接的缩略图应该是他的个人资料照片。

我知道我需要通过发送正确的元标记来做到这一点,即 <meta property="og:image" content="url-image.jpg">

但我不知道如何实现这一点,我应该知道什么呢?我发现了一个名为prerender的东西,但我不确定它是否适用于React

2 个答案:

答案 0 :(得分:0)

经过一番研究后,我认为唯一能做到这一点的原因是服务器端渲染。看起来Facebook并不关心加载JavaScript并且无法检测到<head>部分的变化。我通过构建一个简单的React应用程序来检查这一点,该应用程序在componentWillMount()部分设置OG数据。 Facebook debugger无法找到标题。

因此,您的问题的答案实际上取决于您使用的后端类型。您需要在将响应发送到客户端之前设置元数据。

答案 1 :(得分:0)

在您的情况下,您可能想要使用react-helmet。它是一个文档头管理器,支持服务器呈现。