我在我的项目中使用 React,我在客户端预渲染方面遇到了问题。
更具体地说,有必要配置 SEO
这是使用 react-routes 预渲染现有 reactjs 应用程序的最轻松的方式
Some examples I have researched:
- Gatsby.js - https://www.gatsbyjs.org/docs/porting-from-create-react-app-to-gatsby/
- Next.js - https://nextjs.org/docs#custom-document
- Netlify - https://dev.to/joelvarty/prerender-your-spa-using-netlify-for-better-seo-3h87
- React-snap - https://web.dev/prerender-with-react-snap/
- Prerender.io - https://prerender.io/
- Keen’s Server Side Rendered - https://medium.com/keen-studio/keens-server-side-rendered-react-wordpress-rest-api-boilerplate-bb58edb7cc0a
- Razzle - https://reactresources.com/topics/razzle
- React Helmet - https://github.com/nfl/react-helmet
任何人都可以建议我应该选择哪个选项是最无痛的。
我有 headless wordpress 作为后端,reactjs 客户端作为前端。
或者除了预渲染之外还有其他更快的选择吗?
谢谢。
最佳答案
IMO,如果您想保持控制而不将代码库变成黑盒并选择自己的堆栈,那么您真的不需要使用框架来实现 SSR。
我使用 Node Express 创建了一些样板。它支持:
https://github.com/kimgysen/isomorphic-react-setup
上次我运行它时,我注意到我没有将 favIcon 保存在公共(public)文件夹中,也许有一些小错误我会很快修复(我已经在我的项目中修复了它们但没有更新这个 repo,因为没有人无论如何都要看看它(大声笑!)),但是这里发生的事情并不难理解。
我在几个小时内用它创建了一些基本的 SSR 网站。
我喜欢 redux-observable 在呈现内容之前启动服务器 ajax 调用(使用 forkJoin),但这不包含在样板中(自从我第一次上传以来,我实际上没有支持它)。
但是就设置而言,我真的认为为此使用框架并没有什么意义,自己做真的没有那么痛苦/困难。
我特别喜欢的好处是您不依赖于框架的范围和依赖项。您不会遇到诸如“框架将支持此功能或在即将发布的版本之一中修复该错误”之类的问题。
虽然最终归结为个人选择。所以我不想降级这些框架。
注意:Redux 实现预渲染的方式很简单,就是在返回给客户端的 html 中的 window 对象中添加 Redux 存储(状态)对象。
然后在客户端,它用这些对象初始化存储。
非常简单,即使您决定不实现任何其他 SSR 功能,这也很容易实现。
关于Reactjs wordpress 为 SEO 预渲染现有客户端应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59314074/