next.js next/navigation 携带参数
时间: 2023-07-29 18:14:53 浏览: 78
链接: https://pan.baidu.com/s/18GYlgUtDXJN7aZ-t1P-lKQ 密码: 4og3
5星 · 资源好评率100%
在 `next.js` 和 `next/navigation` 中,您可以通过多种方式向页面传递参数和数据。下面是一些常见的方法:
1. 使用查询字符串:您可以在URL中添加查询字符串来携带参数。例如,您可以在链接中添加 `?id=123` 来传递 `id=123` 参数。
2. 通过URL路径:您可以将参数作为URL路径的一部分来传递参数。例如,您可以创建一个动态路由`/post/[id]`,其中`[id]`表示占位符,然后使用`/post/123`的URL来传递`id=123`参数。
3. 通过state参数:您可以使用 `next/router` 模块的 `push()` 函数或 `next/link` 组件的 `href` 属性中的 `state` 参数来传递数据。例如,您可以使用以下方式在 `next/link` 组件中传递数据:
```
<Link href={{ pathname: '/post', query: { id: '123' } }} as='/post/123' state={{ data: 'hello' }}>
<a>Post</a>
</Link>
```
然后在 `post` 页面中,您可以使用 `router` 对象的 `state` 属性来访问传递的数据,例如:
```
import { useRouter } from 'next/router'
function Post() {
const router = useRouter()
const data = router?.state?.data
return (
<div>
<h1>Post {router.query.id}</h1>
<p>Data: {data}</p>
</div>
)
}
export default Post
```
综上所述,`next.js` 和 `next/navigation` 提供了多种方式来携带参数和数据。您可以根据自己的需求选择最适合的方法来传递数据。
阅读全文