【问题标题】:Navigating between named routes for same Path/URL在相同路径/URL的命名路由之间导航
【发布时间】:2017-07-15 14:29:27
【问题描述】:

我有两条路线,但问题是它们都共享相同的路径/url,就像这样

router.js-->

{
path: '/',
name: 'getin',
components: {
  default: Getin,
  AppFooter
}
},    
{
path:"/",
name: landing
components: {
  default: landing
  AppNav
}
},

index.html-->

    <router-view name="AppNav"></router-view>
    <div class=" jumbo-container">
        <transition name="fade" mode="out-in">
            <router-view></router-view>
        </transition>
    </div>
    <router-view name="AppFooter"></router-view>

看起来如此,Getin 是您在获得授权后立即输入凭据和登陆负载的状态。

现在当我在Getin 组件中进行授权,并且我执行this.$router.push({name:'landing'}) 时,什么也没有发生,我想要做的就是保持相同的路径/URL 并拥有不同的视图,我可以将它们放在一个组件中,但是对我来说听起来不太好,因为它们的意义有很大不同。

【问题讨论】:

    标签: vue.js vuejs2 vue-router


    【解决方案1】:

    您自己承认:“它们的意义大不相同。”。所以它们应该是不同的路径。命名一个“/getin”和一个“/landing”,如果/getin 中的验证成功,则推送到/landing。还要添加一个 beforeEnter 钩子,这样你就不能直接进入 /landing,而只能通过 /getin

    【讨论】:

    • 但事情是我没有在我的应用程序中使用任何 URL,只有一个 url,我只想使用命名路由。这是SPA。
    • 你在使用 VueRouter 吗? SPA 仍然可以有不止一条路线。如果使用命名路由,则需要不同的路由。否则可以使用is标签切换组件
    • 是的,我正在使用 vuerouter,但是如何使用 'is' 标签来处理它,我必须推送到相同路径的命名路由
    • 你不能有两条路径去同一个地方,只是改变名字。你需要有两条路线!
    • 谢谢,我现在理解得更好了,不需要它,这是我的应用程序中的一个缺陷。但是想想,应该是可以做到的。 Angular 1 ui.router 提供了仅在命名路由上操作的功能,路径在那里不相关。只是我的看法。
    猜你喜欢
    • 1970-01-01
    • 2018-04-01
    • 2020-07-12
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    相关资源
    最近更新 更多