在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:
如左图所示,您可以选择想要获取相关文档的路由器类型: