Ionic5 Vue3中实现侧边栏,Ionic5 Vue3中的侧边栏组件ion-menu

发布于 3 年前 作者 phonegap100 786 次浏览 最后一次编辑是 3 年前 来自 分享

ionic5 Vue3实战教程https://www.itying.com/goods-1150.html

一、侧边栏ion-menu组件的基本使用

1、创建项目

ionic start myApp sidemenu

2、配置项目

属性 作用 可选值 side 配置侧边栏的位置 start end menu-id 侧边栏的唯一标识 type 配置侧边栏的弹出方式 overlay, reveal, push swipe-gesture 滑动弹出侧边栏 true false content-id 关联ion-router-outlet的id

<ion-menu side="start" menu-id="first" content-id="main">
   <ion-header>
     <ion-toolbar color="primary">
       <ion-title>Start Menu</ion-title>
     </ion-toolbar>
   </ion-header>
   <ion-content>
     <ion-list>
       <ion-item>Menu Item</ion-item>
       <ion-item>Menu Item</ion-item>
       <ion-item>Menu Item</ion-item>
       <ion-item>Menu Item</ion-item>
       <ion-item>Menu Item</ion-item>
     </ion-list>
   </ion-content>
 </ion-menu>
 <ion-router-outlet id="main"></ion-router-outlet>

二、侧边栏ion-menu结合ion-menu-toggle

<ion-menu side="start" menu-id="first" content-id="main">
     <ion-header>
       <ion-toolbar color="primary">
         <ion-title>Start Menu</ion-title>
       </ion-toolbar>
     </ion-header>
     <ion-content>
       <ion-list>
         <ion-menu-toggle>
           <ion-item router-direction="root" router-link="/button">Menu Button</ion-item>
         </ion-menu-toggle>
         <ion-menu-toggle>
           <ion-item router-direction="root" router-link="/icon">Menu Icon</ion-item>
         </ion-menu-toggle>
         <ion-menu-toggle>
           <ion-item>Menu Item</ion-item>
         </ion-menu-toggle>
         <ion-menu-toggle>
           <ion-item>Menu Item</ion-item>
         </ion-menu-toggle>
       </ion-list>
     </ion-content>
 </ion-menu>
 <ion-router-outlet id="main"></ion-router-outlet>

三、侧边栏ion-menu结合ion-menu-button

<ion-header>
     <ion-toolbar>
       <ion-buttons slot="start">
         <ion-menu-button menu="first"></ion-menu-button>
       </ion-buttons>
       <ion-title>Tab 1</ion-title>
     </ion-toolbar>
</ion-header>

四、侧边栏ion-menu中的事件和方法

Ionic Vue中允许我们用js控制侧边栏,具体步骤如下。

1、给ion-menu定义menu-id属性

<ion-menu side="start" menu-id="first" content-id="main">
</ion-menu>

2、控制菜单的页面(组件)中引入下面代码:

import { 
  menuController
} from '@ionic/vue';

注意:menuController是一个控制器,不是组件

3、对应方法中通过js控制侧边栏

openFirst() {
  menuController.enable(true, 'first');
  menuController.open('first');
}

五、底部tabs结合侧边栏ion-menu

<template>
  <ion-app>
    <ion-menu side="start" menu-id="first" content-id="main">
      <ion-header>
        <ion-toolbar color="primary">
          <ion-title>Start Menu</ion-title>
        </ion-toolbar>
      </ion-header>
      <ion-content>
        <ion-list>
          <ion-menu-toggle>
            <ion-item router-direction="root" router-link="/button">Menu Button</ion-item>
          </ion-menu-toggle>
          <ion-menu-toggle>
            <ion-item router-direction="root" router-link="/icon">Menu Icon</ion-item>
          </ion-menu-toggle>
          <ion-menu-toggle>
            <ion-item>Menu Item</ion-item>
          </ion-menu-toggle>
          <ion-menu-toggle>
            <ion-item>Menu Item</ion-item>
          </ion-menu-toggle>
        </ion-list>
      </ion-content>
    </ion-menu>
    <ion-router-outlet id="main" />
  </ion-app>
</template>

<script lang="ts">
import { IonApp, IonRouterOutlet, IonItem, IonList, IonMenu } from "@ionic/vue";
import { defineComponent } from "vue";

export default defineComponent({
  name: "App",
  components: {
    IonApp,
    IonRouterOutlet,
    IonItem,
    IonList,
    IonMenu,
  },
});
</script>
回到顶部