内容提要
Next.js 9.3发布了多项新功能,包括支持下一代静态网站生成(SSG)、预览模式和内置Sass支持。新数据获取方法如getStaticProps和getServerSideProps增强了静态生成和服务器端渲染的灵活性。此外,404页面实现了自动静态优化,运行时大小减少32kB,提升了性能和兼容性。
延伸解读
数据获取方法的明确分工
Next.js 9.3 引入的 getStaticProps、getStaticPaths 和 getServerSideProps 将静态生成与服务器端渲染的职责清晰分离。getStaticProps 在构建时获取数据,适合内容不频繁变化的页面;getServerSideProps 在每次请求时获取数据,适合需要实时数据的场景。这种区分让开发者能按页面需求选择策略,避免混淆,同时保持向后兼容,getInitialProps 仍可继续使用。
预览模式如何解决草稿预览难题
对于使用无头 CMS 的静态站点,预览草稿内容通常需要重新生成静态页面,流程繁琐。Next.js 9.3 的预览模式允许绕过静态生成,按需服务器端渲染草稿页面。该模式与 getStaticProps 和 getServerSideProps 集成,不限于特定 CMS,为内容编辑提供了实时预览的便利,同时不影响已发布页面的静态性能。
内置 Sass 支持与样式管理改进
Next.js 9.3 内置了全局 Sass 样式表和组件级 Sass 模块支持。全局样式需在 pages/_app.js 中导入,避免类名冲突;组件级样式使用 .module.scss 约定,实现局部作用域。此前 next-sass 插件要求所有 Sass 文件统一为全局或局部,现在两者可共存。生产环境下,全局 Sass 合并为单个 CSS 文件,CSS 模块则按需拆分,优化加载。
性能优化:更小的运行时与静态 404
Next.js 9.3 通过自动按需加载旧版浏览器所需的 polyfill,为 90% 以上的用户减少了至少 32 kB 的首次加载体积。同时,404 页面实现了自动静态优化:默认生成静态 404 页,自定义 pages/404.js 也会在构建时静态化,减少服务器按需渲染的开销。这些优化无需修改代码,提升了应用性能和可靠性。
Q&A
Next.js 9.3有哪些新功能?
Next.js 9.3发布了支持下一代静态网站生成、预览模式和内置Sass支持等新功能。
什么是getStaticProps和getServerSideProps?
getStaticProps用于在构建时获取数据,适合静态生成页面;getServerSideProps在每次请求时获取数据,适合服务器端渲染页面。
如何使用getStaticPaths定义动态路由?
使用getStaticPaths可以指定需要在构建时预渲染的动态路由路径,返回一个包含路径和fallback的对象。
Next.js的预览模式有什么用?
预览模式允许用户绕过静态生成,实时渲染草稿页面,适用于需要即时查看未发布内容的场景。
Next.js 9.3如何支持Sass?
Next.js 9.3内置支持全局Sass样式表和组件级Sass模块,允许直接导入.scss文件。
Next.js 9.3的404页面有什么改进?
404页面实现了自动静态优化,提升了性能和兼容性,默认生成静态404页面。