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 システム インターフェイスが小さすぎる問題の解決方法の詳細な説明

推薦する

ウェブページのカスタム選択ボックス選択

選択ドロップダウン リスト フォームは誰もがよく知っているかもしれませんが、デフォルトのドロップダウ...

Vue.js フロントエンド Web ページ ポップアップ非同期動作例の分析

目次1. 序文2. ポップアップコンポーネントを2つ見つける3. 自分で作る3.1. Promise...

Docker を使用して MySQL 5.7 および 8.0 マスター スレーブ クラスターをデプロイする方法

> MySQL 5.7 クラスタ マスターとスレーブをデプロイする (テストのみ)イメージバー...

素晴らしいCSS属性MASKの詳しい説明

この記事では、CSS の非常に興味深い属性マスクを紹介します。名前が示すように、マスクはマスクと翻訳...

ウェブデザイン経験

<br />著者はかつてWebデザインの初心者でしたが、継続的な探求と実践を通じて、今で...

MySQL UPDATE ステートメントの「典型的な」落とし穴

目次1. 問題のあるSQL文たとえば、次の図のような質問をした人がいました。 問題は次のように要約で...

Linux の sudo 脆弱性により不正な特権アクセスが発生する可能性がある

Linux で新たに発見された sudo の脆弱性を悪用すると、特定のユーザーが root としてコ...

LinuxのCPU負荷とCPU使用率の詳細な説明

CPU 負荷と CPU 使用率これらは両方とも、ある程度、マシンの忙しさを反映できます。 CPU 使...

Dockerでリモートアクセスを有効にする方法

DockerデーモンソケットDocker デーモンは、 unix 、 tcp 、 fdの 3 種類の...

ログインインターフェースの使いやすさとセキュリティのバランスをとる方法

ウェブデザイナーでもUIデザイナーでも、ログインページや登録ページのデザインは必ず経験しなければなら...

Mysql の遅いクエリ操作の概要

MySQL の遅いクエリの説明MySQL スロー クエリ ログは、MySQL が提供するログ レコー...

構造とプレゼンテーションの分離を理解するためのWeb標準の学習

Web 標準について議論するときに必ず話題になるのは、構造とプレゼンテーションを分離することの重要性...

MySQLクエリデータを時間別に表示します。データがない場合は0を入力してください。

需要背景統計インターフェースでは、フロントエンドは 2 つの配列を返す必要があります。1 つは 0 ...

nginxを使用して画像サイズを動的に変換し、サムネイルを生成します。

Nginx ngx_http_image_filter_module モジュール (nginx バ...

MySQL テーブルにおける非主キー列オーバーフロー監視の詳細な説明

今日もまた罠に落ちてしまいました。 私は以前MySQLの主キーオーバーフローに遭遇したことがあり、そ...