[Ionic x Vue] ナビゲーションによる画面遷移を作る

はじめに

Ionicはクロスプラットフォームのモバイルアプリ向けフレームワークです。主にiOS/Android向けに、ワンソースコードでモバイルアプリを開発することができます。

今回はナビゲーションの使い方を解説します。

事前準備

こちらのブログ を通して作成したプロジェクトをベースに進めます。

ナビゲーションとは

ナビゲーションは、画面を積み重ねる(スタックする)ような遷移方法を指します。iOSアプリで言うところのNavigationControllerです。

次のような画面遷移をします。

Ionicでは、このスタック型画面遷移に加えて、ルーティングも行われます。

ナビゲーションを実装する

Home.vueAbout.vue に遷移するボタンを置き、そのクリックイベントで画面遷移を行います。

<template>
  <ion-nav class="ion-page">
    <ion-header>
      <ion-toolbar>
        <ion-title>Hello World</ion-title>
      </ion-toolbar>
    </ion-header>
    <ion-content class="ion-padding">
      <h1>Welcome To @ionic/vue</h1>
      <img alt="Vue logo" src="../assets/logo.png" />
      <ion-button @click="onClick" full>Go to About Page</ion-button>
    </ion-content>
  </ion-nav>
</template>

<script>
export default {
  name: "home",
  methods: {
    onClick() {
      this.$router.push('/about');
    }
  }
}
</script>

About.vue は画面遷移先です。こちらはヘッダーに戻るボタンをとなる ion-back-button を使います。

<template>
  <div class="about">
    <ion-header>
      <ion-toolbar>
        <ion-buttons slot="start">
          <ion-back-button></ion-back-button>
        </ion-buttons>
        <ion-title>About Page</ion-title>
      </ion-toolbar>
    </ion-header>
    <ion-content class="ion-padding">
      <h1>This is an about page</h1>
    </ion-content>
  </div>
</template>

これで動かすと、画面遷移ができます。

ネイティブアプリのような画面遷移を作ろう

ナビゲーションはネイティブアプリで必ずと言っていいほど登場する、利用頻度の高い画面遷移手法です。

Ionicアプリでは普通のリンクを飛ばすこともできますが、よりネイティブアプリの動きに近くなるよう、ぜひ取り入れましょう。