当前位置: 首页 > news >正文

next.js 组件路由钩子

客户端组件路由钩子

useRouter,
useParams,
useSearchParams,
usePathname,

useRouter

返回一个包含6个操作浏览器nevigator对象的方法的对象
在这里插入图片描述
prefetch用于预获取某个路径的数据,可以改善首屏加载时间

useParams

返回动态路由参数

useSearchParams

返回动态路由查询字符串

usePathname

返回url字符串

完整调用示例

'use client';
import { 
    useRouter,
    useParams,
    useSearchParams,
    usePathname,
} from "next/navigation";
const PropertyPage = () => {
    const router = useRouter()
    const params = useParams()
    const searchParams = useSearchParams()
    const pathname = usePathname()

    return ( <div>
        <button 
            className="text-red-300"
            onClick={()=> router.replace('/')}
        >go home</button>
        <div> pathname {pathname}</div>
        <div> params {params.id}</div>
        <div> searchParams {searchParams.get('name')}</div>
    </div> );
}
 
export default PropertyPage;

效果展示

在这里插入图片描述
点击go home,调用replace方法,重定向道根路径在这里插入图片描述

服务端的params和searchParams

13.3版本以前可以直接这样调用
在这里插入图片描述
新版本的官网解释是这样的
在这里插入图片描述
这里是说 以前依赖于运行时信息的同步动态 API 现在是异步的,也就是说param,seatchParams都是异步的,客户端没有报错但是也是异步的,但是服务端会报错,所以特别在这里提示,如果想要同步调用需要给他们都包上use(),想异步可以参考官网解释

import { use } from 'react'

const PropertyPage = ({params,searchParams}) => {
    const params1 =use(params);//这里包上
    const searchParams1 = use(searchParams); //包上
    return ( 
        <div>Property Page {params1.id} {searchParams1.name} </div>
     );
}
 
export default PropertyPage;

效果
在这里插入图片描述

http://www.dtcms.com/a/85032.html

相关文章:

  • Linux上位机开发实战(能用的开发板计算资源)
  • 3.9 Spring Boot国际化:动态语言切换与数据库存储方案
  • LabVIEW 与 PLC 通讯的常见方式
  • 大数据学习栈记——HBase安装
  • HashMap学习总结——JDK17
  • PHP 应用TP 框架路由访问对象操作内置过滤绕过核心漏洞
  • STM32-ARM
  • 深入理解 Spring 框架中的 IOC 容器
  • 智能AI优化SEO关键词实战
  • LLM(6):理解词嵌入
  • 大白话详细解读React框架的纯函数和高阶函数
  • 京准电钟:NTP网络时间服务器让城市更智慧更精准
  • 快速入手-基于Django的Form和ModelForm操作(七)
  • C++ 介绍STL底层一些数据结构
  • 数据结构(排序(上)):冒泡、选择、插入
  • MySQL 创建用户,建库,建表
  • 红宝书第八讲:箭头函数与高阶函数:厨房工具与智能菜谱的对比
  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加导出数据功能示例6,TableView15_06自定义导出文件名示例
  • ZYNQ的cache原理与一致性操作
  • 跟着StatQuest学知识06-CNN进行图像分类
  • 为容器指定固定IP地址
  • 06_数组
  • Android卷笔试题目总结
  • 大模型架构记录 【综述-文字版】
  • WPS排版如何一张纸显示四张纸的内容?
  • 解析DeepSeek的技术内核:混合专家架构如何重塑AI效能
  • 区块链交易所平台开发全解析
  • Systemd 是 Linux 系统的 ‌核心服务管理工具‌,负责管理系统的启动、服务生命周期和资源分配
  • 避雷 :C语言中 scanf() 函数的错误❌使用!!!
  • 高德终端技术总结:高可用架构如何练成?