introduction
Next.js 支持 IE11以及所有现代浏览器(Edge,Firefox,Chrome,Safri,Opera,其他)而无需其他配置 .
Polyfills
它注入了许多通用的腻子进行辅助,例如
fetch()
替代whatwg-fetch
以及unfetch
URL
替代 来自Node.js的url
Object.assign
替代object-assign``object.assign
以及core-js/object/assign
如果你的依赖已经包括了这些腻子,它们能够被自动的从生产构建中消除避免重复 …
除此之外,为了减少打包尺寸,Next.js 仅仅会加载浏览器需要它们的腻子,全球大多数网络流量都不会下载这些聚合填充 …(因为这些浏览器可能自身已经包含) …
自定义Polyfills
如果你的代码或者外部npm 依赖需要不被目标浏览器支持的特性(例如IE 11),你需要自己增加对应的填充 …
在这种情况下,你可能需要增加一个顶级的导入(针对特定的填充)到自定义的<App>
或者独立的组件 …
JavaScript 语言特性
Next.js 允许你使用最新的JS特性d(开箱即用),除了ES6特性,还支持:
- Async/await (ES2017)
- Object Rest/Spread Properties (ES2018)
- Dynamicimport() (ES2020)
- Optional Chaining (ES2020)
- Nullish Coalescing (ES2020) - 空合并
<font style="color:rgb(17, 17, 17);">??</font>
的使用 - Class Fields and Static Properties
Server-Side Polyfills
除了fetch()
等在客户端的填充,Next.js 填充 fetch
在Node.js 环境,你能够在服务端代码中使用fetch()
(例如getStaticProps
/getServerSideProps
),而无需使用例如isomorphic-unfetch
或者 node-fetch
…
Typescript 特性
Next.js 内置了Typescript的支持 …
定制Babel 配置(高级特性)
查看高级部分的教程 ….