admin管理员组文章数量:1402469
I'm an experienced front-end developer but I'm very new to Ionic so please forgive me for asking a silly question.
I'm using Ionic-Vue to create a mobile app.
I started with the tabs default template. I can switch between tabs without any problem: each tab has an associated route and ponent and the right ponent is shown instantly when i switch tab.
Now to the problem.
I'm trying to add a new route/ponent for the Login screen. I want the login screen to be outside of the tab system so I put it as a top-level route "/login" with its associated ponent. I added a new button on the first tab in order to login, this is the code.
<ion-button href="/login">LOGIN</ion-button>
But when i press the button THE WHOLE PAGE RELOADS taking much more time to switch ponent then when I navigate through the different tabs. It seems to me that it's not using the internal router but instead it's changing the actual URL of the page causing the whole application to be requested again to the server. I think it's something related to the fact I'm using the tab default template, maybe if you use tabs you cannot have stand-alone routes?
This is my route table:
const routes: Array<RouteRecordRaw> = [
{
path: '/',
redirect: '/tabs/home'
},
{
path: '/tabs/',
ponent: Tabs,
children: [
{
path: '',
redirect: 'home'
},
{
path: 'home',
ponent: () => import('@/views/Home.vue')
},
{
path: 'tab1',
ponent: () => import('@/views/Tab1.vue')
},
{
path: 'tab2',
ponent: () => import('@/views/Tab2.vue')
},
{
path: 'tab3',
ponent: () => import('@/views/Tab3.vue')
}
]
},
{
path: '/login',
ponent: () => import('@/views/Login.vue'),
}
]
Thank you!
I'm an experienced front-end developer but I'm very new to Ionic so please forgive me for asking a silly question.
I'm using Ionic-Vue to create a mobile app.
I started with the tabs default template. I can switch between tabs without any problem: each tab has an associated route and ponent and the right ponent is shown instantly when i switch tab.
Now to the problem.
I'm trying to add a new route/ponent for the Login screen. I want the login screen to be outside of the tab system so I put it as a top-level route "/login" with its associated ponent. I added a new button on the first tab in order to login, this is the code.
<ion-button href="/login">LOGIN</ion-button>
But when i press the button THE WHOLE PAGE RELOADS taking much more time to switch ponent then when I navigate through the different tabs. It seems to me that it's not using the internal router but instead it's changing the actual URL of the page causing the whole application to be requested again to the server. I think it's something related to the fact I'm using the tab default template, maybe if you use tabs you cannot have stand-alone routes?
This is my route table:
const routes: Array<RouteRecordRaw> = [
{
path: '/',
redirect: '/tabs/home'
},
{
path: '/tabs/',
ponent: Tabs,
children: [
{
path: '',
redirect: 'home'
},
{
path: 'home',
ponent: () => import('@/views/Home.vue')
},
{
path: 'tab1',
ponent: () => import('@/views/Tab1.vue')
},
{
path: 'tab2',
ponent: () => import('@/views/Tab2.vue')
},
{
path: 'tab3',
ponent: () => import('@/views/Tab3.vue')
}
]
},
{
path: '/login',
ponent: () => import('@/views/Login.vue'),
}
]
Thank you!
Share Improve this question edited Dec 3, 2020 at 18:31 Dan 63.2k18 gold badges111 silver badges119 bronze badges asked Dec 3, 2020 at 18:01 SuxsemSuxsem 1081 silver badge7 bronze badges3 Answers
Reset to default 5You should use a router-link
to direct the router:
<router-link to="/login">
<ion-button>LOGIN</ion-button>
</router-link>
The to
object has various options for configuration. If your route had a name property like name: 'login'
, you could also have accessed it that way, which can be cleaner in the template for longer route paths:
<router-link :to="{ name: 'login' }">
<ion-button>LOGIN</ion-button>
</router-link>
In addition to Dan's answer, note that you can also use the router-link
attribute of <ion-button>
:
<ion-button router-link="/login">LOGIN</ion-button>
Remember to use router-link
(either the ponent or attribute) instead of href
when you want to navigate to another route, for the best experience.
Alternatively, you can use <ion-button>
's router-link
property, like so:
<ion-button :router-link="{ name: 'login'}">Login</ion-button>
本文标签: javascriptIssues navigating to different routes when using tabs in Ionic Vue appStack Overflow
版权声明:本文标题:javascript - Issues navigating to different routes when using tabs in Ionic Vue app - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744289768a2599059.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论