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

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

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}`}).