我是一个开发新手,我最近创建了一个MERN堆栈应用程序,它使用reactjs作为前端,Nodejs作为后端,MongoDB作为数据库。之后,我搜索了一些方法来优化这个应用程序。但是在互联网上的许多文章中,他们提到我们不能SEO Reactjs应用程序,相反,我们需要实现SSR(服务器端渲染)。现在我有以下几个问题。有人能解释一下吗?
- 我们可以将现有的MERN应用程序升级到NextJs吗?
- 是否有其他方法来优化这个MERN应用程序?
- 所以我必须阻止使用React作为我未来项目的前端吗?相反,我是否需要在我未来的项目中使用Nextjs ?如果是这样,reactjs是无用的吗?
谢谢。
Surjeet很好地回答了你的第一个问题。回答你的第二个和第三个问题,有一些工具,比如React Router和React Helmet,可以为React项目添加一些SEO。这里有一篇很有帮助的文章:
https://medium.com/@prestonwallace 3-ways-improve-react-seo-without-isomorphic-app-a6354595e400
快速总结一下,React Router将允许你为每个新路由生成一个uri。React Helmet会在组件的头部创建元数据标签,比如标题或页面描述,然后googlebot就可以拾取这些标签。
是的,您不能执行react
应用程序的SEO
。你必须使用SSR
。
回答你的问题:
1。可以将现有的MERN
应用程序升级到NextJs
吗?
-
可以但这是一个漫长的手工过程。所有的组件都可以直接使用。有很多东西需要修改:
- 路由(NextJs有不同的路由方式)
- 样式导入方式
- 运行
package.json
脚本 - 如果你使用过浏览器的东西,如
window
object,localStorage
那么你必须处理这些在SSR - 在运行应用程序时可能会遇到其他问题
2。是否有其他的方法来优化这个MERN应用程序?
- 否,必须使用SSR
3。我是否必须阻止在未来的项目中使用React作为前端?相反,我是否需要在我未来的项目中使用Nextjs ?如果是这样,reactjs是无用的吗?
- 如果SEO是必须的,你想要SSR(例如:电子商务网站,个人网站),使用
NextJs
- 如果没有SEO,使用
React
(例如:管理面板,特定的基于用户的Web应用程序)