vue-routeルーティング管理のインストールと設定方法

vue-routeルーティング管理のインストールと設定方法

導入

Vue RouterVue.jsの公式ルーティング マネージャーです。 Vue.jsのコアと深く統合されているため、シングルページ アプリケーションを簡単に構築できます。含まれる機能は次のとおりです:

  • ネストされたルート/ビューテーブル
  • モジュール式のコンポーネントベースのルーティング構成
  • ルートパラメータ、クエリ、ワイルドカード
  • Vue.js トランジションシステムに基づくトランジション効果を表示する
  • きめ細かなナビゲーションコントロール
  • 自動的にアクティブ化された CSS クラスを持つリンク
  • HTML5 履歴モードまたはハッシュモード、IE9 では自動的にダウングレードされる
  • カスタムスクロールバーの動作

インストール

インストールコマンド

npm インストール vue-router --save

モジュールプロジェクトで使用する場合は、 Vue.use()を介してルーティング関数を明示的にインストールする必要があります。

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

Vue.use(VueRouter)

モジュール使用

以前、スキャフォールディングvue-cliを使用してプロジェクトを作成したとき、 router実際に構成されていました。プロジェクトが作成されると、プロジェクトのルート ディレクトリにrouterフォルダーが作成され、 routerの下に次の内容のindex.jsファイルが作成されます。

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

// 1. 他のプラグインを使用する場合は、Vue.use を使用してプラグインをインストールする必要があります Vue.use(VueRouter);

// 2. ルートを定義します。各ルートはコンポーネントにマップする必要があります。constroutes = [
  {
    パス: "/"、
    名前: "ホーム",
    コンポーネント: ホーム、
  },
  {
    パス: "/about",
    名前: "概要",
    コンポーネント: について
  },
];

// 3. ルーターインスタンスを作成する const router = new VueRouter({
  // ルートとコンポーネント間のアプリケーション関係を設定します。ルート、// (省略形) ルートと同等: ルート
});

// 4. ルーター オブジェクトをエクスポートし、main.js で export default router を参照します。

このファイルは、ルーティングを構成するためのものです。最後に、 routerオブジェクトをエクスポートすると、プロジェクトのmain.jsで参照できるようになります。

「vue」からVueをインポートします。
「./App.vue」からアプリをインポートします。
「./router」からルーターをインポートします。

Vue.config で productionTip を false に設定します。

新しいVue({
  router, // vueインスタンスにルーターオブジェクトを追加すると、ルーティングを使用できるようになります render: (h) => h(App),
}).$mount("#app");

当社の 2 つのコンポーネント コードであるAboutHome次のとおりです。

// About.vue
<テンプレート>
  <div class="about">
    <h1>について</h1>
  </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
  名前: 「概要」
}
</スクリプト>

<スタイルスコープ>
</スタイル>

// ホーム.vue
<テンプレート>
  <div class="home">
    <h1>ホーム</h1>
  </div>
</テンプレート>

<スクリプト>

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

<スタイルスコープ>
</スタイル>

最後に、 App.vueに次のコードを記述します。

テンプレート>
  <div id="アプリ">
    <router-link to="/">ホーム</router-link>
    <router-link to="/about">について</router-link>
    <ルータービュー></ルータービュー>
  </div>
</テンプレート>

<スタイル lang="scss">
</スタイル>

<router-link>を使用してリンクを読み込み、次にto使用してジャンプ先のリンクを表します。最後に、 <router-link> <a>タグにレンダリングされます。
<router-view>はルートの出口です。つまり、対応するurlの下のコードがこの場所にレンダリングされます。

HTML5 履歴モード

しかし、プログラムを起動してページにアクセスすると、 urlアドレスに#が表示されます。

これは、 vue-routerデフォルトでhashモード ( URLhashを使用して完全なURLをシミュレートする) に設定されているため、 URLが変更されてもページがリロードされないためです。
醜いhashが必要ない場合は、ルーターのhistoryモードを使用できます。このモードでは、 history.pushState API最大限に活用して、ページをリロードせずにURLジャンプを完了します。

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

routerフォルダーの下のindex.jshistorymodeを追加し、 #記号なしでhttp://localhost:8080/再度アクセスするだけです。

注: historyモードではバックグラウンド構成のサポートも必要です。私たちのアプリケーションはシングルページ クライアント アプリケーションであるため、バックエンドが正しく構成されていない場合、ユーザーがブラウザーで他のurlアドレスに直接アクセスすると 404 が返され、これは好ましくありません。

したがって、すべての状況をカバーするには、サーバー上に候補リソースを追加する必要があります。URL URLどの静的リソースとも一致しない場合は、 app依存するページである同じindex.htmlページを返す必要があります。

vue-route ルーティング管理のインストールと設定に関するこの記事はこれで終わりです。より関連性の高い vue route のインストールと設定の内容については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • vue-routerネストルーティングが応答しない問題を解決する
  • vue-router ルーティングインターセプションによって発生するデッドループ問題を解決する
  • vueはaddRoutesを複数回解決してルートを追加し、操作を繰り返します。
  • vue + routerルーティングジャンプが機能しない理由の1つを解決する
  • vue update router-viewの再利用コンポーネントの内容が更新されない問題を解決する
  • Vue は権限制御ルーティングを実装します (vue-router は動的にルーティングを追加します)
  • Vue ルーティング オブジェクト attribute.meta $route.matched の詳細な説明

<<:  MySQL (5.6 以下) の JSON 解析の詳細な例

>>:  vmware14Pro で Ubuntu システム インターフェイスが小さすぎる問題の解決方法の詳細な説明

推薦する

Linux での stat 関数と stat コマンドの使用法の詳細な説明

stat 関数と stat コマンドLinux ファイル内の [inode = インデックス ノード...

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

目次序文Vue CLI での設定基本コードVueルーターの登場ネストされたルートの設定要約する序文V...

Mysqlトランザクション操作の失敗を解決する方法

Mysqlトランザクション操作の失敗を解決する方法トランザクションの原子性: トランザクションは、デ...

Vueのprovideとinjectの使い方と原則を分析する

まず、provide/inject を使用する理由について説明しましょう。祖父コンポーネントと孫コン...

VPS はオフライン ダウンロード サーバーを構築します (ネットワーク ディスクの時代以降)

モチベーション学習の必要性から、海外のサーバーメーカー(どこのメーカーかは言いません)のVPSサービ...

Python MySQL データベース テーブルの変更とクエリ

Python は MySQL に接続してデータベース テーブルを変更およびクエリします。 pytho...

Mysql の主キーと一意キーの違いのまとめ

主キーとは何ですか?主キーは、テーブル内の各タプル (行) を一意に識別するテーブル内の列です。主キ...

リクエストを転送したり、静的リソースファイルにアクセスしたりする複数の場所への nginx の実装

この記事では主に、リクエストを転送したり、静的リソース ファイルにアクセスしたりする nginx の...

Node.js のモジュール性、npm パッケージ マネージャーの説明

目次モジュール化の基本概念モジュール化とは何かモジュール分解の利点Node.js のモジュール性No...

5つのCSSスクロール天井実装方法の比較(パフォーマンス向上版)

改訂版のプレビューこの記事は 3 日前に書かれたものです。先輩の同僚から改訂の提案をいくつかいただき...

CSS3 transition-delay属性のデフォルト値が単位なしの0であり無効である問題を解決します

今日は、CSS3 の transition-delay 属性のデフォルト値 0 に単位がないのは無効...

フロントエンドセキュリティの詳細な説明: JavaScript の http ハイジャック対策と XSS

目次HTTP ハイジャック、DNS ハイジャック、XSS HTTPハイジャックDNSハイジャックXS...

Linux システム (CentOS7 インストール) に JDK8 をインストールするための詳細なチュートリアル

JDKのインストールシステムのインストールについてはあまり詳しく説明しません。インストール手順はオン...

Linux インデックスノード inode の詳細な説明

1. inodeの紹介inode を理解するには、まずファイル ストレージから始める必要があります。...