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 ディスク管理 LVM の使用

1. LVM の概要Linux ディスクを管理するときに、このような状況に遭遇することがよくあります...

Docker+Nginx を使ってシングルページアプリケーションをデプロイする

開発から導入まで自分で行うシングルページアプリケーションを開発する場合、ビルドを実行した後 npm ...

three.js を使用してクールなアシッドスタイルの 3D ページ効果を実現します

この記事では、主にReact + three.jsテクノロジースタックを使用して3Dモデルの読み込み...

Dockerコンテナでの静的ウェブサイトレイアウトの実装

サーバーの配置数日間無料で使用できるクラウドサーバー(Alibaba Cloud、Huawei Cl...

Reactドラッグフックを実装するための100行以上のコード

序文ソースコードは合計で 100 行強しかありません。これを読めば、react-dnd などの成熟し...

CSS 複合セレクタの具体的な使用法

交差点セレクター交差セレクターは、直接接続された 2 つのセレクターで構成されます。最初のセレクター...

MySQL の複合インデックスはどのように機能しますか?

目次背景複合インデックスを理解する左端一致原則フィールド順序の影響複合インデックスは単一のインデック...

CSS クリアフロートクリア:both サンプルコード

今日はフロートのクリアについてお話します。フロートのクリアについてお話する前に、フロートとは何かを理...

Docker で TLS と CA 認証を有効にする方法

目次1. 証明書を生成する2. リモートを有効にする3. リモート接続3.1 Jenkins接続3....

MAC 上の MySQL の初期パスワードを忘れた場合の対処方法

MACでMySQLの初期パスワードを忘れた場合の解決策を参考までに共有します。具体的な内容は次のとお...

Node.js のフロントエンドとバックエンドのインタラクションによるユーザーログインの実装の実践

目次1. プロジェクト要件次にコーディングを始める1. フロントエンドページを作成する(CSSスタイ...

Vueはシンプルなスライダー検証を実装する

この記事の例では、Vueスライダー検証の実装を共有しています。コードは次のとおりです。 <テン...

フロントエンドブラウザのフォントサイズが12px未満のソリューション

序文最近プロジェクトに取り組んでいたとき、UI デザインのフォント サイズは 10 ピクセルでした。...

Jenkins でユーザー ロールの権限を設定する方法

Jenkinsのユーザーロール権限の設定には、ロール戦略プラグインのインストールが必要です。 1.ロ...

MYSQL ロック解除とロックテーブルの紹介

MySQL ロックの概要他のデータベースと比較すると、MySQL のロック メカニズムは比較的単純で...