vue.js ルーターのネストされたルート

vue.js ルーターのネストされたルート

序文:

ルートでは、主要部分は同じでも、基礎となる構造が異なることがあります。たとえば、ホームページにアクセスすると、ニュース用の/home/newsと情報用の/home/messageがあります。ここでネストされたルーティングが役立ちます。

プロジェクトの構造は次のとおりです。

Home.vueHomeNews.vueHomeMessage.vueという 3 つのコンポーネントを作成しました。コードは次のとおりです。

ホーム.vue

<テンプレート>
  <div class="home">
    <h1>ホーム</h1>
    <router-link to="/home/news">ニュース</router-link> // ここでフルパスを記述する必要があることに注意してください。/news だけを記述することはできません。/home を追加する必要があります。
    <router-link to="/home/message">情報クラス</router-link>
    <ルータービュー></ルータービュー>
  </div>
</テンプレート>

<スクリプト>

エクスポートデフォルト{
  名前: "ホーム",
};
</スクリプト>

<スタイルスコープ>

</スタイル>

ホームニュース

<テンプレート>
  <div class="homeニュース">
    <ul>
      <li>ニュース 1</li>
      <li>ニュース 2</li>
      <li>ニュース 3</li>
      <li>ニュース4</li>
    </ul>
  </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
  名前: 「ホームニュース」
}
</スクリプト>

<スタイルスコープ>

</スタイル>

ホームメッセージ

<テンプレート>
  <div class="homeMessage">
    <ul>
      <li>メッセージ 1</li>
      <li>メッセージ 2</li>
      <li>メッセージ 3</li>
      <li>メッセージ 4</li>
    </ul>
  </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
  名前: "HomeMessage"
}
</スクリプト>

<スタイルスコープ>

</スタイル>

コンポーネントが書き込まれたら、 routerフォルダのindex.jsファイルでルートを設定します。

「vue」からVueをインポートします。
「vue-router」から VueRouter をインポートします。

Vue.use(VueRouter);

// ここでもルーティング遅延読み込みを使用します const Home = () => import('../views/Home')
const HomeNews = () => import('../views/HomeNews')
const HomeMessage = () => import('../views/HomeMessage')

定数ルート = [
  {
    パス: "/home",
    名前: "ホーム",
    コンポーネント: ホーム、
    // 子ルートの書き方 children: [
      {
        パス: "ニュース",
        名前: "HomeNews",
        コンポーネント: ホームニュース
      },
      {
        パス: "メッセージ",
        名前: "HomeMessage",
        コンポーネント: HomeMessage
      },
    ]
  },
  {
    パス: ""、
    リダイレクト: "ホーム"
  }
];

const ルーター = 新しい VueRouter({
  ルート、
  モード: '履歴'、
});

デフォルトルーターをエクスポートします。

ネストされたルートの記述は非常に簡単です。 children構成は、 routes構成と同様にルート構成の配列であるため、複数のレイヤーのルートをネストできることがわかります。

この時点で、上記の設定に基づいて、 /home/にアクセスしても、 home出口は何もレンダリングされません。

これは、適切なサブルートが一致しなかったためです。何かをレンダリングしたい場合は、空の子ルートを提供できます。

定数ルート = [
  {
    パス: "/home",
    名前: "ホーム",
    コンポーネント: ホーム、
    子供たち: [
      {
        パス: "ニュース",
        名前: "HomeNews",
        コンポーネント: ホームニュース
      },
      {
        パス: "メッセージ",
        名前: "HomeMessage",
        コンポーネント: HomeMessage
      },
      // 空のサブルートを追加 {
        パス: ""、
        リダイレクト: 「ニュース」
      }
    ]
  },

  {
    パス: ""、
    リダイレクト: "ホーム"
  }
];

こうすることで、デフォルトでnewsページにリダイレクトされ、 news情報が表示されます。

これで、vue.js ルーターのネストされたルーティングに関するこの記事は終了です。vue ネストされたルーティングに関するその他の関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue-router ネストルーティングの詳細な説明
  • Vueルーティングルーターの詳細な説明
  • Vue のルータールーティングの 2 つのモード (ハッシュと履歴) の詳細な説明
  • vue ルーティング ビュー router-view のネストされたジャンプの実装
  • VueRouterルーティングの詳細な説明
  • Vueルータールーティングの詳細な説明

<<:  MySQL 8.0.23のルートパスワードをリセットするための最適なソリューション

>>:  CSS は、モバイル端末でクリックされたときに生成された要素の背景色を削除します (推奨)

推薦する

回転するフリップカードアニメーションの効果を実現するCSS

回転フリップ効果の CSS アニメーション、具体的な内容は次のとおりです。 1. まず2つのボックス...

経験者のHTMLの書き方と理由の分析

1. ナビゲーション: 順序なしリストとその他のラベル要素ナビゲーションを記述するために最も一般的に...

DockerでRabbitMqの共通クラスタとミラークラスタを構築する詳細な操作

目次1. RabbitMqの動作環境を構築する1.検索を通じてrabbitmqイメージを照会する2....

HTMLインライン要素とブロックレベル要素の基本概念と使用例

HTML タグには、インライン要素とブロックレベル要素の 2 種類があります。まず、インライン要素と...

MySQLにおけるトランザクションの永続性実装原理の詳細な説明

序文データベース トランザクションに関して言えば、トランザクションの ACID 特性、分離レベル、解...

シンプルなショッピングカート機能を実現するjs

この記事の例では、簡単なショッピングカート機能を実現するためのjsの具体的なコードを参考までに共有し...

MySQLの自動増分主キーIDはこのように処理されません

MySQLの自動増分主キーIDは段階的に増加しません1. はじめにMySQL データベースにデータを...

Webフロントエンド開発CSS関連チームコラボレーション

フロントエンド開発部門は成長し、スタッフも増加し、技術も向上しています。 CSSer はフロントエン...

MySQLのビューとインデックスの使い方と違いの詳細な説明

MySQL ビュー簡単に言えば、MySQL ビューは SELECT コマンドを定義するためのショート...

ウェブサイトを黒、白、グレーにする4つのコードの詳細な説明

2008年5月12日に四川省汶川市で発生した地震により、多くの命が失われ、遺憾なことと存じます。国務...

Vue ドラッグ アンド ドロップのシンプルな実装

この記事では、主に次のような Vue ドラッグ アンド ドロップの簡単な実装を紹介します。レンダリン...

MySQL で結合を使用して SQL を最適化する方法の詳細な説明

0. 以下のテストに関連する表を準備する関連するテーブル作成ステートメントについては、https:/...

WeChatミニプログラムがシームレスなスクロールを実現

この記事の例では、WeChatアプレットのシームレスなスクロールを実現するための具体的なコードを参考...

MySQL は information_schema オブジェクトの付与をバイパスし、ERROR 1044 (4200) エラーを報告します

この質問は、MySQL の権限に関する WeChat グループのネットユーザー間の議論です。次のよう...