Hard Navigation On Client side Navigation (using Link component) in Nextjs 15
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 142k
- Forks
- 32.4k
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 351
Description
Link to the code that reproduces this issue
https://codesandbox.io/p/devbox/musing-lalande-js9nmq?file=%2Fapp%2Fpage.tsx%3A5%2C1
To Reproduce
1. Create a new page in the starter project.
2. Add a link to that page on the home page.
3. Run the app locally.
4. Click on the link.
5. A hard navigation occurs, causing the window to reload and the page document to be downloaded.
In Next.js v14, this behavior wouldn’t occur. Navigations were handled as soft navigations, resulting in the document not being downloaded on every navigation and requested only once.
Current vs. Expected behavior
In Next.js v15, clicking on internal links leads to full page reloads (hard navigations), resulting in the entire page document being downloaded each time. This behavior differs from Next.js v14, where navigations were handled as soft navigations (client-side transitions), allowing for faster and more efficient page changes without reloading the entire document.
Provide environment information
Operating System:
Platform: macos
Arch: x64
Binaries:
Node: 20.9.0
npm: 10.1.0
Yarn: 1.22.19
pnpm: 9.9.0
Relevant Packages:
next: 15.0.2
react: 18.3.0,
react-dom": 18.3.0,
typescript: 5.1.6
Which area(s) are affected? (Select all that apply)
Navigation
Which stage(s) are affected? (Select all that apply)
next dev (local), next start (local), Other (Deployed)
Additional context
https://github.com/user-attachments/assets/5fd95c4d-3f0d-4bd5-9849-4c35575b3872
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked CodeSandbox reproduction, especially app/page.tsx, and compare the internal Link navigation under Next.js 15 with the stated Next.js 14 behavior. Done means clicking the internal link performs a soft client-side transition without reloading or downloading the full document.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- nextjs, react
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100