You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js 13.2.4中Link组件hover预取如何彻底禁用?

彻底禁用Next.js Link组件hover预取的方案

针对你使用Next.js 13.2.4 pages路由的场景,以下两种方法可以彻底禁用hover时的预取请求:

1. 全局禁用所有Link的hover预取

在项目根目录的next.config.js中添加experimental.prefetchPages配置,全局关闭页面预取功能:

/** @type {import('next').NextConfig} */
const nextConfig = {
  experimental: {
    prefetchPages: false,
  },
}

module.exports = nextConfig

该配置会完全禁用所有Link组件的预取行为,包括初始加载和hover触发的预取。

2. 针对单个Link禁用hover预取

如果不想全局禁用,可直接给Link的子元素绑定onMouseEnter事件并阻止默认行为:

<Link href={`blog/${id}`} prefetch={false}>
  <h2 onMouseEnter={(e) => e.preventDefault()}>{title}</h2>
</Link>

也可以封装成复用的自定义组件,减少重复代码:

import Link from 'next/link'

const NoPrefetchLink = ({ href, children, ...props }) => {
  const handleMouseEnter = (e) => e.preventDefault()

  return (
    <Link href={href} prefetch={false} {...props}>
      <span onMouseEnter={handleMouseEnter}>{children}</span>
    </Link>
  )
}

// 使用示例
// <NoPrefetchLink href={`blog/${id}`}><h2>{title}</h2></NoPrefetchLink>

补充说明

你之前设置的prefetch={false}仅会关闭页面初始加载时的预取,而hover触发的预取是Next.js Link的独立行为,需要通过上述全局配置或事件阻止的方式彻底禁用。

内容的提问来源于stack exchange,提问作者kxown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 16:02:12