2017-07-15 81 views
0

我有两个途径,但问题是,它们都共享相同的路径/ URL,这样命名路线之间的导航相同的路径/ 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'}),没有任何反应,我想要做的就是保持相同的路径/网址,并有不同的意见,我可以把它们放在一个单一的组件,但没有声音对我来说是好的,因为它们的意义有很大的不同。

回答

0

你自己承认:“他们的意义有很大的不同。”所以他们应该是单独的路径。命名一个“/ getin”和一个“/ landing”,并且如果auth in/getin成功则推送/登陆。还添加一个beforeEnter挂钩,以便您不能直接进入/登陆,但只能通过/ getin

+0

但事情是我没有在我的应用程序中使用任何URL,只有一个url,我只想使用named路线。它是SPA。 – Siddharth

+0

你在使用VueRouter吗? SPA仍然可以有多条路线。如果您使用命名路线,则需要不同的路线。否则,你可以使用'is'标记来切换组件 – aprouja1

+0

是的,我正在使用vuerouter,但它如何与'is'标签相关,我必须推送到相同路径的指定路由 – Siddharth