用户登录

定义路由的时候,可以在路由地址里添加需要的参数,在路由组件内部,通过 useParams 这个 hook 可以获取到地址参数的值。

新建一个文件,放在 src/app/post/show 里面,名字是 post-show.tsx,文件里定义一个组件,名字是 PostShow。

打开 post-routes,在这个 postRoute 里再用 Route 定义一个路由,路由的 path,可以设置成 posts/:postId,定义路由的时候,路由地址里带冒号前缀的部分就是地址参数,在这个路由里,这个 :postId 就是这个路由地址里的一个参数,这个参数的值是动态的,比如 posts/1,posts/3,posts/6 这些地址都会匹配这条路由。

路由元素就是刚才定义的 PostShow 组件。

在浏览器,先测试一下,访问 /posts/1 ,显示的就是 PostShow 这个组件,再试一下访问 /posts/3,页面上仍然会显示 PostShow 这个组件,因为访问的地址匹配刚才我们定义的那条路由。

访问 /posts/1 的时候,地址参数里的那个 :postId 这个参数的值就会是 1 ,在访问 /posts/3 的时候,地址参数里的 postId 的值就会是 3。

在路由组件里我们可以使用 React Router 提供的 useParams 这个 hook,获取到地址参数里的值。

打开 post-show,在组件里用一下 useParams,这个 hook 返回的值就是地址参数对象,我们需要这个对象里的 postId 这个属性,可以直接把它解构出来。

下面再用一个 useEffect,提供一个回调,在回调里设置页面标题,document.title,它的值用一个字符模板,先是内容这两个字,然后再加上 postId,它的值就是地址参数里的 postId 的值。在组件的显示这里,再输出一个 postId。

然后在浏览器测试一下,现在访问的地址是 /posts/3 ,页面标题是内容 3,页面上显示的文字里也会输出 postId 这个地址参数的值。 在路由组件里,我们可以利用这些地址参数的值,去做一些动态的处理,比如根据这个 postId 参数的值,请求获得组件需要的对应的内容数据。

在 React 应用里定义带参数的动态路由《 React 前端应用开发:应用路由 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点