V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
muunala10221
V2EX  ›  程序员

请教个前端 vueRouter 问题

  •  
  •   muunala10221 · 44 天前 · 614 次点击
    这是一个创建于 44 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我有两个路由 A 和 B,下级有很多名字相同的组件.
    假设我在 B 页面切换,$router.push 一个 A 和 B 的 children 下相同名字的组件,就会跳转到 A 的下面,有什么办法可以解决吗?
    Tlin
        1
    Tlin   44 天前
    说的有点懵。你是 A 、B 页面都是用相同的组件,但是 B 页面路由 push 后会跳到 A 页面? push 里面的参数是一些路由信息配置,看看有错没,此外看引入的组件里面看有没有路由跳转,通常 A 引入组件跟 B 引入组件不冲突
    Carseason
        2
    Carseason   44 天前
    绝对路径跳转
    muunala10221
        3
    muunala10221   44 天前
    @Tlin 不好意思 没表达清楚 /a/1 /b/1 假如我当前处于 /b 下 我想跳转到 /b/1 这时候我$router.push(name : 1) 就会跳转到 /a/1 下
    muunala10221
        4
    muunala10221   44 天前
    @Carseason 我查一下 感谢哈
    xingyuc
        5
    xingyuc   44 天前 via iPhone
    name 区分或者写全路径
    Tlin
        6
    Tlin   44 天前
    看官网的编程式导航后面的一句话“注意: 如果目的地和当前路由相同,只有参数发生了改变 (比如从一个用户资料到另一个 /users/1 -> /users/2),你需要使用 beforeRouteUpdate 来响应这个变化 (比如抓取用户信息)。”
    当然你可以试试绝对路径

    可以转变策略,嵌套路由
    https://router.vuejs.org/zh/guide/essentials/nested-routes.html
    OHyn
        7
    OHyn   44 天前
    router.push ( path:‘xxxxx’)用这个 API 。
    wunonglin
        8
    wunonglin   44 天前
    你这问题和我当年在 sf 的问的问题一样。

    https://segmentfault.com/q/1010000017007660?_ea=13033647

    解决方法是只能是用绝对路径。所以鉴于一些问题以及这个问题,我跳坑到 ng 了。

    世间美好
    wunonglin
        9
    wunonglin   44 天前
    安利下 ng 的导航方法
    ```
    // http://127.0.0.1/user/1?page=1#header
    // params 的话,像这个 id,放数值后面就行了
    this.Router.navigate(['/user', id], {
    // 相对于当前路由导航,去掉就会按照根目录导航
    relativeTo: this.ActivatedRoute,
    // 设置查询参数
    queryParams: {
    page: 1
    },
    // 可以合并上面的参数和原本 url 上的参数,也可以完全替换为上面的参数
    queryParamsHandling: 'merge',
    // 可以设置锚点
    fragment: 'header',
    })
    ```
    lin07hui
        10
    lin07hui   43 天前
    /a/1 和 /b/1 的 name 不能相同
    { path: '/a/1', name: 'a1', ... }
    { path: '/b/1', name: 'b1', ... }
    $router.push(name : 'a1')
    $router.push(name : 'b1')
    rodrick
        11
    rodrick   43 天前
    1. name 不要一样,2. 写全路径 /a/1 or /b/1
    muunala10221
        12
    muunala10221   43 天前
    好的谢谢
    muunala10221
        13
    muunala10221   43 天前
    @wunonglin 谢谢
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2172 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:36 · PVG 00:36 · LAX 08:36 · JFK 11:36
    ♥ Do have faith in what you're doing.