news 2026/4/23 14:05:39

Next-4-路由导航

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Next-4-路由导航

客户端路由导航方式

Link 组件

通过Next.js提供的<Link>组件实现页面跳转,避免整页刷新,提升用户体验。需从next/link导入,例如:

importLinkfrom"next/link";exportdefaultfunctionHomePage(){return(<div><Link href="/home/kun"className="cursor-pointer text-blue-500">跳转kun</Link><br/><Link href={{pathname:"/home/me",query:{name:["kun",'kun2']}}}className="cursor-pointer text-red-500">跳转me,并携带参数</Link><br/><Link href={{pathname:"/home/me",}}prefetch={true}className="cursor-pointer text-red-500">预获取页面</Link><br/><Link href={{pathname:"/home/me"}}scroll={true}className="cursor-pointer text-blue-500">保持当前滚动位置</Link><br/><Link href={{pathname:"/home/me"}}replace={true}className="cursor-pointer text-red-500">替换当前路由</Link></div>)}

接收参数(useSearchParams ):

'use client'importLinkfrom"next/link";import{useSearchParams}from"next/navigation";exportdefaultfunctionMePage(){// 获取路由传递的参数constsearchParams=useSearchParams()constname=searchParams.get("name")constnames=searchParams.getAll("name")console.log('传递的参数:',name)console.log('传递的多个参数:',names)return(<div><h1>Me</h1><Link href="/home/kun">Kun</Link></div>)}
useRouter Hook

useRouter 是 Next.js 提供的 React Hook,用于访问路由对象,实现客户端导航、获取路由参数、查询字符串等操作。需从 next/router 导入。

方法作用一行代码示例
push(url)新增一条历史记录并跳转router.push('/dashboard')
replace(url)替换当前历史记录(不留“后退”)router.replace('/login')
back()等价于浏览器后退按钮router.back()
forward()等价于浏览器前进按钮router.forward()
refresh()重新请求当前页面数据(不闪屏)router.refresh()
prefetch(url)静默预拉取目标页面(提升切页速度)router.prefetch('/detail')
小栗子
<button onClick={()=>router.push({pathname:'/product/[id]',query:{id:100,ref:'tw'}})}>查看商品</button>

路由预加载策略

自动预加载
<Link>组件默认预加载视口内链接资源,通过prefetch={false}可禁用。

手动预加载
通过router.prefetch()主动预加载目标路由:

useEffect(()=>{router.prefetch('/settings');},[]);

动态路由导航

模板字符串路径
动态路由参数可通过模板字符串传递:

router.push(`/posts/${postId}`);
importLinkfrom"next/link"exportdefaultfunctionPage(){constarr=[1,2,3,4,5]returnarr.map((item)=>(<Link key={item}href={`/page/${item}`}>动态渲染的Link</Link>))}

对象形式路径
支持传递pathnamequery对象,适用于复杂参数:

router.push({pathname:'/search',query:{keyword:'nextjs'}});

路由事件监听

通过router.events监听路由变化事件:

router.events.on('routeChangeStart', (url) => { console.log('路由开始变化:', url); });

服务端路由导航

redirect函数
在服务端组件或Server Actions中使用(HTTP 307):

import{redirect}from'next/navigation';redirect('/login');

permanentRedirect
适用于永久重定向场景(HTTP 308):

permanentRedirect('/new-url');
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 10:16:08

GPT-SoVITS与VITS的区别是什么?技术选型指南

GPT-SoVITS与VITS的区别是什么&#xff1f;技术选型指南 在语音合成&#xff08;TTS&#xff09;领域&#xff0c;我们正经历一场由“通用模型”向“个性化智能”的范式迁移。过去&#xff0c;一个高质量的语音克隆系统动辄需要几十甚至上百小时的录音数据——这显然不适合普通…

作者头像 李华
网站建设 2026/4/23 10:16:39

哔哩下载姬终极指南:从入门到精通的无水印视频下载技巧

哔哩下载姬终极指南&#xff1a;从入门到精通的无水印视频下载技巧 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&…

作者头像 李华
网站建设 2026/4/23 0:29:36

英语语法:从零到一的通俗指南

先说清楚一件事&#xff1a; 很多人一听“英语语法”这四个字&#xff0c;脑子里立刻蹦出来的是&#xff1a; 一堆枯燥的时态表乱七八糟的从句主谓宾、定状补、虚拟语气、被动语态…… 然后下意识反应就是&#xff1a;“烦死了&#xff0c;我只想能说、能写&#xff0c;看懂电影…

作者头像 李华
网站建设 2026/4/23 10:30:49

25、H∞综合:从KYP引理到控制器综合

H∞综合:从KYP引理到控制器综合 1. KYP引理 KYP引理有多种形式,它建立了频域不等式和状态空间条件之间的等价关系,这些条件可以用Riccati方程或线性矩阵不等式(LMI)来表示。下面给出的形式将H∞范数条件转化为LMI,这对于实现控制器综合的目标非常有帮助,同时也是对传递…

作者头像 李华
网站建设 2026/4/23 10:29:58

26、H∞综合与不确定系统分析:理论与实践

H∞综合与不确定系统分析:理论与实践 1. H∞综合问题概述 在控制理论中,H∞综合问题旨在寻找一个控制器,使得闭环系统在满足一定性能指标下具有良好的鲁棒性。然而,该问题在降阶情况下计算复杂度较高。具体而言,当存在额外约束条件rank $\begin{bmatrix} X & I \ I …

作者头像 李华
网站建设 2026/4/22 14:38:36

41、严格分离证明与μ - 简单结构解析

严格分离证明与μ - 简单结构解析 在数学分析与矩阵理论的研究中,严格分离证明和特定结构下的定理证明是重要的研究内容。下面将详细探讨严格分离的证明过程以及μ - 简单结构相关定理的证明。 1. 严格分离证明 严格分离证明的第一步依赖于矩阵 $M$ 的时间不变性,最后一个…

作者头像 李华