ytakeuchi.jp

Next.jsでURLの情報を取得する方法を整理する(usePathname/useSearchParams/useParams)

Next.js

URL の情報を取得する方法

URLの情報を取得する "next/navigation" でのhookは下記3つ

  • usePathname: dynamic params を含むパスを取得
  • useSearchParams: クエリパラメータを取得
  • useParams: dynamic params を取得

※ たまにuseRouterでqueryを取得しているものがあるが、Next.js12以前("next/router")での方法。
Next.js13以降( "next/navigation")では上記の3つなので混同しないように注意(useParams はNext.js 13.3から追加)

サンプルコード

useSearchParams

クエリパラメータの取得

import { useSearchParams } from 'next/navigation';
 
// 省略
 
  const searchParams = useSearchParams()
  const params1 = searchParams.get('params1')
 
// 省略

usePathname

アクセスした時のパスが取得できる(dynamic params を含む)

import { usePathname } from 'next/navigation';
 
// 省略
 
  const pathname = usePathname()
 
// 省略

useParams

dynamic params である [id] を取得

import { useParams } from 'next/navigation';
 
// 省略
 
 const params = useParams()
 const id = params.id
 
// 省略

ytakeuchi

2016年からフロントエンド領域を中心にフリーランスとして活動中。座右の銘は「昨日よりも楽に」好きな言葉は「効率化」こんな性格なので最近はAIツールばかり触っています。