页面无 HTML 链接
防止使用
<a>
元素导航到内部 Next.js 页面。
错误发生的原因
使用<a>
元素导航到页面路由时未使用next/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/"]
}
}
有用链接
这有帮助吗?