当前位置: 首页 > 文章教程  > 计算机与互联网 > 网络编程

vue router动态路由下让每个子路由都是独立组件的解决方案

5/9/2018 9:49:16 PM 人评论

vue-router 之动态路由vue-router官网上面是这样说的// 带查询参数,变成 /registerplan=privaterouter.push({ path: register, query: { plan: private }})然后,我就这样写了:this.$router.push({path:manage, query: {id: tasklist}})1结果很明显,失败了。然…

vue-router 之动态路由

vue-router官网上面是这样说的
// 带查询参数,变成 /register?plan=private
router.push({ path: 'register', query: { plan: 'private' }})
然后,我就这样写了:
this.$router.push({path:'manage', query: {id: 'tasklist'}})1
结果很明显,失败了。然后我就默默的再次看了一下官网,结果发现了这句话
// 命名的路由
router.push({ name: 'user', params: { userId: 123 }})
// 带查询参数,变成 /register?plan=private
router.push({ path: 'register', params: { plan: 'private' }})
注意:如果提供了 path,params 会被忽略,上述例子中的 query 并不属于这种情况。取而代之的是下面例子的做法,你需要提供路由的 name 或手写完整的带有参数的 path:
const userId = 123
router.push({ name: 'user', params: { userId }}) // -> /user/123
router.push({ path: `/user/${userId}` }) // -> /user/123
// 这里的 params 不生效
router.push({ path: '/user', params: { userId }}) // -> /user
谨记啊,动态实现二级路由,需要先用变量保存二级路由名称(let router = 'tasklist'),然后调用this.$router.push({path: `/user/${router}`}).

相关教程

共有条评论 网友评论

验证码: 看不清楚?