我正在进行React/javascript学习经验的快速原型设计阶段。 我想知道何时使用框架,例如Next.js或Gatsby.js,而不是标准的Create React App。
我真的很喜欢Next.js基于页面的结构和预加载链接的前景。 但是,我不确定何时会选择Next而不是CRA甚至是已弹出的CRA。
谢谢!
我正在进行React/javascript学习经验的快速原型设计阶段。 我想知道何时使用框架,例如Next.js或Gatsby.js,而不是标准的Create React App。
我真的很喜欢Next.js基于页面的结构和预加载链接的前景。 但是,我不确定何时会选择Next而不是CRA甚至是已弹出的CRA。
谢谢!
我和你是一样的处境。 我开始使用CRA创建单页应用程序,这对于入门和克服学习曲线非常有帮助。但很快我发现了两个重要的问题:
Create-React-App:一个非常好的启动器工具,用于创建SPA。
Gatsby / React-Static:类似于Create-React-App,但会生成HTML构建输出,因此是“预渲染”。我尚未进行实验。我有希望这将解决(1)和(2),因为现在我可以在静态站点服务器(S3 / Azure Blobs / Github Pages)上提供不同的OGP标签的HTML,而不是在获取后在本地更改。我还不确定这是否有效。这里的附加优势是,由于Gatsby已经在构建时进行了预渲染,用户体验更佳。(也许有经验的Gatsby用户可以澄清,或者我完成后会编辑此答案。)更新(2018年2月19日):我可以证实Gatsby.js解决了(1),而仍然作为静态网站托管。
Next.js :如果 Gatsby 无法解决(1)和(2),那么 Next.js 将成为我的备选方案来创建完整的 SSR 应用程序。问题在于,现在我将不得不使用 PaaS 来托管网站(例如 Azure Web 应用程序或 AWS ElasticBeanStalk 或 Heroku),而不是静态站点托管服务(Azure Blob、AWS S3、Github Pages)。这将略微更昂贵,需要更多工作来设置 CI/CD 流水线。
另请参见 CRA 文档中列出的这些替代品。
我自己在进行这项研究。我的理解是,Next.js提供了开箱即用的服务器端渲染。Create React App没有这样做,因此您需要为SSR提供自己的解决方案(例如更快的页面加载和SEO)。
create-react-app非常适合构建网站和移动应用程序(react native应用程序),因为有很多学习曲线可供选择。另外两个是React框架(我们可以这么说)。
使用Gatsby可以更快地创建单页网站并轻松部署。 在使用REST API时,请使用Next.js(我猜...)
这取决于你。一个好的开发者总是能找到简单快捷的工作方式。