常见问题

Next.js 能用于生产环境吗? 自 Next.js 被创建以来,https://vercel.com 网站就一直是基于 Next.js 构建的。

我们对 Next.js 在开发人员的体验和最终用户的表现上都感到欣喜,所以我们决定将其分享到整个社区。

文件体积有多大?

客户端文件包的大小应当以每个应用程序为单位进行测量。经过压缩之后的 Next.js 应用程序的主文件包大约是 65kb。

如何修改内置 webpack 的配置?

Next.js 尽力消除 webpack 的配置工作,但对于需要更多控制的高级使用场景,请参阅 自定义 webpack 配置

哪些语法会被转换?怎么修改配置?

我们紧跟 V8 引擎的步伐。如今 V8 引擎广泛支持 ES6 语法以及 async 和 await 语法,所以我们支持转换它们。但是 V8 引擎不支持类修饰器(class decorators)语法,所以我们也不支持转换这些语法。

有关详细信息,请参阅有关 自定义babel配置 的文档。

为什么又造一个路由(Router)的轮子? Next.js 的特别之处在于:
  • 路由不需要被提前知道,我们没有路由清单
  • 路由永远支持懒加载Routes are always lazy-loadable
如何获取数据?

这取决于你。你可以在 React 组件中使用 fetch APISWR 获取远程数据,或者使用我们提供的 数据获取方式 进行初始数据的填充。

我可以使用 GraphQL 吗?

是的! 这里有个例子 example with Apollo

我可以使用 Redux 吗?

是的! 这里有个 示例。还有一个 example with thunk

我可以将静态资源部署到 CDN 上吗?

是的。您可以在 这里 了解到更多信息。

我可以将我喜欢的 JavaScript 库或工具包同 Next.js 一同使用吗?

自从我们的第一次发布版本以来,社区成员已经贡献了许多示例。您可以在 examples 目录下找到。

是什么启发了你们?

我们设定并实现的许多目标都是由 Guillermo Rauch 在 富 Web 应用程序的 7 个原则 中列出的。

PHP 的易用性是一个很好的灵感来源。我们认为 Next.js 可以替代很多需要用 PHP 输出 HTML 的场景。

与 PHP 不同的是,我们受益于 ES6 的模块系统,每个页面都导出一个组件或函数,该组件或函数可以很容易地导入(import)以进行延迟计算或测试。

当我们在研究服务器端渲染 React 并且不涉及大量繁琐步骤的技术时,我们遇到了 react-page(现已弃用),一个由 Jordan Walke(同时还是 React 的创建者) 创建的类似 Next.js 的项目。