在Next.js中,我知道 next/router 和 next/navigation 都有一個 useRouter() 鉤子,但傳回的物件不同。為什麼 Next.js 在兩個路由包上有相同的鉤子?
next/router
next/navigation
useRouter()
useRouter來自next/router 會在 中使用pages 資料夾,Next.js 中設定路由的初始方式。從v13 開始,他們引入了一個名為app 的新目錄 (當您對下圖中顯示的最後一個問題說「是」時使用),建構在伺服器元件,您可以在其中以不同方式定義路由並使用useRouter 來自next/navigation:
useRouter
中使用pages
v13
app 的新目錄
引自doc:
如左圖所示,您可以選擇想要取得相關文件的路由器類型:
useRouter
來自next/router
會在中使用pages
資料夾,Next.js 中設定路由的初始方式。從v13
開始,他們引入了一個名為app 的新目錄
(當您對下圖中顯示的最後一個問題說「是」時使用),建構在伺服器元件,您可以在其中以不同方式定義路由並使用useRouter
來自next/navigation
:引自doc:
如左圖所示,您可以選擇想要取得相關文件的路由器類型: