我是一名经验丰富的前端开发人员,但我对 Ionic 很陌生,所以请原谅我问了一个愚蠢的问题。
我正在使用 Ionic-Vue 创建移动应用程序。
我从选项卡默认模板开始。我可以毫无问题地在选项卡之间切换:每个选项卡都有关联的路线和组件,并且当我切换选项卡时会立即显示正确的组件。
现在来说说问题。
我正在尝试为登录屏幕添加新的路由/组件。我希望登录屏幕位于选项卡系统之外,因此我将其作为顶级路由“/login”及其关联组件。我在第一个选项卡上添加了一个新按钮以便登录,这就是代码。
<ion-button href="/login">LOGIN</ion-button>
Run Code Online (Sandbox Code Playgroud)
但是,当我按下按钮时,整个页面都会重新加载,切换组件所需的时间比我浏览不同选项卡时要多得多。在我看来,它没有使用内部路由器,而是更改了页面的实际 URL,导致整个应用程序再次向服务器请求。我认为这与我使用选项卡默认模板有关,也许如果您使用选项卡就不能拥有独立的路由?
这是我的路由表:
const routes: Array<RouteRecordRaw> = [
{
path: '/',
redirect: '/tabs/home'
},
{
path: '/tabs/',
component: Tabs,
children: [
{
path: '',
redirect: 'home'
},
{
path: 'home',
component: () => import('@/views/Home.vue')
},
{
path: 'tab1',
component: () => import('@/views/Tab1.vue')
},
{
path: 'tab2',
component: () => import('@/views/Tab2.vue')
},
{
path: 'tab3',
component: () => import('@/views/Tab3.vue')
}
]
},
{
path: '/login',
component: () => …
Run Code Online (Sandbox Code Playgroud) 我正在构建一个 Ionic-Vue 5 移动应用程序,我发现自己导入了很多 vue 组件只是为了将它们使用到我的视图中:
import {
IonPage,
IonHeader,
IonToolbar,
IonTitle,
IonContent,
IonInput,
IonButton,
IonAlert,
IonList,
IonItem,
IonCard,
IonCardContent,
IonCardHeader,
IonCardSubtitle,
IonLabel,
IonSpinner
} from "@ionic/vue";
export default defineComponent({
components: {
IonHeader,
IonToolbar,
IonTitle,
IonContent,
IonPage,
IonInput,
IonButton,
IonAlert,
IonList,
IonItem,
IonCard,
IonCardContent,
IonCardHeader,
IonCardSubtitle,
IonLabel,
IonSpinner
},
Run Code Online (Sandbox Code Playgroud)
我知道从性能的角度来看这可能很有用,但是当列表足够大以证明一点性能损失是合理的以大大简化代码时,有一种方法可以一次导入所有离子组件吗?