bamdadfr / next-replace-url

Replace URL parameters in Next.js without re-rendering.

Home Page:https://www.npmjs.com/package/next-replace-url

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

release license

Replace URL parameters in Next.js without re-rendering.

๐Ÿš€ Getting Started

npm install next-replace-url
yarn add next-replace-url
import {useNextReplaceUrl, nextReplaceUrl} from 'next-replace-url';

// in your functional component
useNextReplaceUrl('parameter', value);

// from anywhere
nextReplaceUrl('parameter', value);

๐Ÿ“–๏ธ Description

The module replaces the window.history.state object therefore bypassing Next.js routing context, avoiding re-renders.

Some suggest shallow routing which unfortunately does not prevent re-renders.

Under the hood example

// User navigates to https://example.com/audio/1

// Current state
window.history.state = {
  "url": "/audio/[volume]?volume=1", // Next.js URL
  "as": "/audio/1" // What user sees
}

// Running the following command will replace the URL parameter "volume" with "2"
nextReplaceUrl('volume', '2')

// Resulting state
window.history.state = {
  "url": "/audio/[volume]?volume=2",
  "as": "/audio/2"
}

๐Ÿ“–๏ธ Related discussions

About

Replace URL parameters in Next.js without re-rendering.

https://www.npmjs.com/package/next-replace-url

License:MIT License


Languages

Language:JavaScript 100.0%