一个 NextJS 后退不刷新页面的问题

2024-07-16 · 周二一般小雨

今天整 NextJS 又发现一个问题,就是路由后退之后页面内容不会刷新,排查后发现是有一处使用了 history.replaceState 方法的代码导致的,一旦有一个历史记录并非 NextJS 自身创建,就会导致这个异常现象。

首先为什么要用这个方法呢,这是因为 next-intl 这个多语言库在 Pages Router 模式下,会强制在地址增加语言前缀(例如 /zh-CN/about),没错又是该死的多语言才出现的问题。而产品又说需要去除掉它(和我之前那个官网项目又完全相反),同事没想到什么方案就采用了如此策略,强行去除语言前缀,并且绕开可能反复跳转的问题。

我去看了 对应文档,他只提到 App Router 模式才允许取消这个前缀,真的是恶心到了 🤡 后期继续看看有没有解决方案吧...

Paul

Paul

特立独行的一只前端菜狗。这篇日记编写大概耗时了 6 分钟,内容均为个人原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!如本站内容对你有所帮助的话,不妨 捐助支持 一下?

奇趣音乐盒技术源于 Kico Player
Emmm,这里是歌词君