带参数的动态路由匹配
有的时候,一个user组件,它应该对所有用户进行渲染,但是用户ID不同。所以可以用一个动态字段来实现,称为 路径参数:
动态路由有两种匹配方式:
方法一:使用{{$route.params.id}}
传递动态参数
如图:实现的页面效果
当然,也可以在同一个路由中设置多个路径参数,它们都会映射到$route.params上的相应字段
匹配模式 | 匹配路径 | $route.params |
/users/:username | /users/eduardo | { username: 'eduardo' } |
/users/:username/posts/:postId | /users/eduardo/posts/123 | { username: 'eduardo', postId: '123' } |
方法二:利用props传递动态参数
实现的页面效果:
相应路由参数的变化
使用带有参数的路由时需要注意的是,当用户从 /users/johnny
导航到 /users/jolyne
时,相同的组件实例将被重复使用。因为两个路由都渲染同个组件,比起销毁再创建,复用则显得更加高效。不过,这也意味着组件的生命周期钩子不会被调用。