ページへのHTMLリンクなし
Next.jsの内部ページへのナビゲーションに
<a>
要素を使用することを防ぎます。
このエラーが発生した理由
next/link
コンポーネントを使用せずにページルートへナビゲートするために<a>
要素が使用され、不要な全ページのリフレッシュを引き起こしました。
Link
コンポーネントは、ページ間のクライアントサイドでのルート遷移を有効にし、シングルページアプリケーション体験を提供するために必要です。
解決策
Link
コンポーネントをインポートし、異なるページルートへのアンカー要素をLink
コンポーネントで囲むようにしてください。
変更前
pages/index.js
function Home() {
return (
<div>
<a href="/about">About Us</a>
</div>
)
}
変更後
pages/index.js
import Link from 'next/link'
function Home() {
return (
<div>
<Link href="/about">About Us</Link>
</div>
)
}
export default Home
オプション
pagesDir
このルールは通常、pages
ディレクトリを自動的に見つけることができます。
モノレポで作業している場合、eslint-plugin-next
のrootDir
設定を構成することをお勧めします。これにより、pagesDir
がpages
ディレクトリを見つけるために使用されます。
場合によっては、pages
ディレクトリを直接指定してこのルールを設定する必要があるかもしれません。これはパス、またはパスの配列にすることができます。
eslint.config.json
{
"rules": {
"@next/next/no-html-link-for-pages": ["error", "packages/my-app/pages/"]
}
}
関連リンク
参考になりましたか?