搜索页的 URL 状态管理:可分享、可回退、可刷新
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
之前做的搜索页被用户吐槽过三件事:搜了关键词、点进结果、按返回——搜索状态没了;想把搜索结果发给同事——没链接可发;刷新页面——回到空白。三个问题的根因是同一个:搜索状态存在组件里,没同步到 URL。这篇记录把搜索页状态搬到 URL 的完整做法。 核心规则:URL 是搜索状态的唯一来源搜索状态包括:关键词
反过来说,别再用 读取:从 URL 派生状态两个关键设计:
写回:输入 replace,提交 push这是最容易搞错的地方。如果每敲一个字都 配合 取数:以 URL 参数为缓存键状态在 URL 后,数据请求直接以参数为 key,天然享受缓存:
分享与 SEO:两件小事复制分享:一行搞定。 服务端首屏:分享链接被爬虫/用户打开时,希望直接看到结果。Next.js App Router 里页面组件能读到
服务端取数这一步,用搜索数据接口(比如 SerpBase 的 踩坑记录坑 1: 坑 2:每敲一键 push 历史。 返回按钮要按几十次。输入用 坑 3:忘记 坑 4:读取 坑 5:默认值全写进 URL。 工程清单
URL 状态管理这件事,本质上是把「页面当前显示什么」变成「地址栏里写着什么」——前者只对当前用户可见,后者可分享、可回退、可爬取。搜索页尤其适用:搜索结果本来就是「可引用」的内容。 接口参数( 阅读原文:原文链接 该文章在 2026/10/10 9:09:37 编辑过 |
关键字查询
相关文章
正在查询... |