2020-05-21 10:24:03
在 Next.js 13+ 中集成 Google Fonts 的现代化指南如下:
核心方法:使用 next/font/google 模块Next.js 13+ 引入了 next/font/google 模块,替代传统的 <link> 标签或 @import 方式,提供以下优势:
在 app/layout.js(或需要全局字体的布局文件)中导入并配置字体。以 Poppins 为例:
// app/layout.jsimport { Poppins } from 'next/font/google';const poppins = Poppins({ subsets: ['latin'], // 指定字体子集(减少文件大小) display: 'swap', // 字体加载策略(避免文本不可见) variable: '--font-poppins', // 定义 CSS 变量名 weight: ['100', '200', '300', '400', '500', '600', '700', '800', '900'] // 按需加载字重});export const metadata = { title: '您的页面标题', description: '您的页面描述',};export default function RootLayout({ children }) { return ( <html lang="zh-CN" className={`${poppins.variable}`}> {/* 应用字体变量 */} <body>{children}</body> </html> );}参数说明通过 className 将字体变量绑定到 <html> 元素,使 CSS 变量全局可用:
// app/layout.js (部分代码)<html lang="zh-CN" className={`${poppins.variable}`}> <body>{children}</body></html>3. 在 CSS 中使用字体在全局 CSS 文件(如 app/globals.css)或组件 CSS 模块中,通过 var() 函数引用字体变量:
/* app/globals.css */body { font-family: var(--font-poppins), sans-serif; /* 全局应用 */}.custom-text { font-family: var(--font-poppins), serif; font-weight: 500; /* 指定字重 */}优势与注意事项优势在 Next.js 13+ 中集成 Google Fonts 的推荐流程:
这种方法不仅解决了传统方式的性能问题,还提供了更优的开发体验,符合现代 Web 开发的最佳实践。