Vue3 ページ、メニュー、ルートの使用

Vue3 ページ、メニュー、ルートの使用

1. メニューをクリックしてジャンプ

1. ページ名の統一

まずページ名を統一して小文字を使用し、 HomeAboutページを小文字に変更してから、 routerindex.ts変更します。

サンプルコードは次のとおりです。

'vue-router' から {createRouter、createWebHistory、RouteRecordRaw} をインポートします。
'../views/home.vue' から Home をインポートします。
'../views/about.vue' から About をインポートします。

const ルート: Array<RouteRecordRaw> = [
  {
    パス: '/'、
    名前: 'ホーム'、
    コンポーネント: ホーム
  },
  {
    パス: '/about',
    名前: 'About'、
    コンポーネント: について
    // ルートレベルのコード分割
    // これにより、このルート用の別のチャンク (about.[hash].js) が生成されます
    //遅延読み込みのため削除しました}
]

const ルーター = createRouter({
  履歴: createWebHistory(process.env.BASE_URL)、
  ルート
})

デフォルトルーターをエクスポートする

2. 管理ページを追加する

views/adminの下にadmin-ebook.vueというページを作成します。

サンプルコードは次のとおりです。

<テンプレート>
  <div class="about">
    <h1>電子書籍管理ページ</h1>
  </div>
</テンプレート>

3. ルートを追加する

router内のindex.tsコンテンツを再度変更します。

サンプルコードは次のとおりです。

'vue-router' から {createRouter、createWebHistory、RouteRecordRaw} をインポートします。
'../views/home.vue' から Home をインポートします。
'../views/about.vue' から About をインポートします。
'../views/admin/admin-ebook.vue' から AdminEbook をインポートします。

const ルート: Array<RouteRecordRaw> = [
  {
    パス: '/'、
    名前: 'ホーム'、
    コンポーネント: ホーム
  },
  {
    パス: '/about',
    名前: 'About'、
    コンポーネント: について
  },
  {
    パス: '/admin/admin-ebook',
    名前: 'AdminEbook',
    コンポーネント: AdminEbook
  }
]

const ルーター = createRouter({
  履歴: createWebHistory(process.env.BASE_URL)、
  ルート
})

デフォルトルーターをエクスポートする

4. メニューでルートをバインドする

ヘッダーで変更します。サンプル コードは次のとおりです。

<テンプレート>
    <a-layout-headerクラス="header">
      <div class="logo" />
      <a-メニュー
          テーマ="ダーク"
          モード="水平"
          :style="{ 行の高さ: '64px' }"
      >
        <a-メニュー項目キー="/">
          <router-link to="/">ホーム</router-link>
        </a-メニュー項目>
        <a-menu-item キー="/admin/admin-ebook">
          <router-link to="/admin/admin-ebook">電子書籍管理ページ</router-link>
        </a-メニュー項目>
        <a-メニュー項目キー="3">
          <router-link to="/about">当社について</router-link>
        </a-メニュー項目>
      </a-メニュー>
    </a-レイアウト-ヘッダー>
</テンプレート>

<script lang="ts">
'vue' から {defineComponent} をインポートします。

エクスポートデフォルトdefineComponent({
  名前: 'TheHeader',
});
</スクリプト>

知識ポイント:

以下のようにrouter-linkを使用してリダイレクトします: <router-link to="/"> Home </router-link>

2. 実際の効果

以下のように再コンパイルして起動します。

Vue3 のページ、メニュー、ルートの使い方についてはこれで終了です。Vue3 のページ、メニュー、ルートの使い方についてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • vue3 キャッシュページキープアライブと統合ルーティング処理の詳細な説明
  • Vue3.0とBootstrapを組み合わせてマルチページアプリケーションを作成する
  • Vue3.0はドロップダウンメニューのカプセル化を実装します
  • Vue3+TypeScriptは再帰メニューコンポーネントの完全な例を実装します
  • Vue2.x と Vue3.x のルーティングフックの違いの詳細な説明
  • Vue3ルーティングVueRouter4を使用する簡単な例
  • Vue2/vue3 ルーティング権限管理方法の例

<<:  CSSアニメーションを使用して背景のシームレスな無限ループを実装する例

>>:  一般的なMySQLストレージエンジンの長所と短所

推薦する

画像の一時停止を実現するjQueryプラグイン

この記事では、画像の一時停止を実現するためのjQueryプラグインの具体的なコードを参考までに共有し...

Linux dirnameコマンドの具体的な使い方

01. コマンドの概要dirname - ファイル名からディレクトリ以外のサフィックスを削除しますd...

バインドを使用してDNSサーバーを設定する方法

DNS(ドメインネームサーバー)は、ドメイン名とそれに対応する IP アドレスを変換するサーバーです...

Hyper-V インストール CentOS 8 の問題の分析

CentOS 8 がリリースされてから随分経ちました。Linux 仮想マシンをいじっている人間として...

iframe テクニックを使用して訪問者 QQ 実装のアイデアとサンプル コードを取得する

今日、仕事中に、一時的に追加した友人から、Web ページを使用して訪問者の QQ を取得する方法を尋...

CSS コード省略 div+css レイアウト コード省略仕様

略語を使用すると、CSS ファイルのサイズが小さくなり、読みやすくなります。 CSS 省略形の主なル...

HTML に画像が存在しない場合にデフォルトの画像を表示する方法の例

画像リンク <img src="" /> jsを使用してURLが有効...

Mysql テーブルで利用可能な最小 ID 値を照会する方法

今日、研究室のプロジェクトを見ていたとき、私にとって「難しい」問題に遭遇しました。実は、それは私があ...

Vueルータールーティングの詳細な説明

目次1. 基本的な使い方2. 注意すべき点3. マルチレベルルーティング(マルチレベルルーティング)...

MySql の null 関数の使用の共有

MySql の null に関する関数IFNULL ISNULL NULLIF IFNULL使用法:...

DockerはMysql、.Net6、Sqlserverなどのコンテナをデプロイします

目次CentOS 8にDockerをインストールする1. yumを更新する2. containerd...

Linux カーネル デバイス ドライバー キャラクタ デバイス ドライバー ノート

/******************** * キャラクターデバイスドライバー**********...

Ubuntu 20.04でAliソースを変更する方法

なお、この記事では、単に 20.04 ソースに変更する方法を説明するのではなく、20.04 に基づい...

CSS エラスティック ボックス flex-grow、flex-shrink、flex-basis の詳細な説明

3 つの属性 flex-grow、flex-shrink、flex-basis の機能は次のとおりで...

VMware vSAN 入門概要

1. 背景1. vSphere の共有ストレージの背景を簡単に紹介するvSphere の重要な機能は...