vue-routerには2つのモードがあります
1. シングルページアプリケーションシングルページアプリケーション 1. HTMLファイルは1つだけであり、ウェブサイト全体のすべてのコンテンツはこのHTMLにあり、JSによって処理されます。 2. ページ操作が更新されないだけでなく、ページジャンプも更新されません。シングルページ アプリケーションを実現するには、フロントエンドとバックエンドの分離 + フロントエンド ルーティングが必要です。 (ページを再リクエストせずにビューを更新します) フロントエンドルーティング 実装は実際には非常に簡単です。異なる URL パスを一致させて解析し、さまざまなコンポーネントをロードして、地域の HTML コンテンツを動的にレンダリングするだけです。 アドバンテージ 優れたインタラクティブエクスペリエンス、ユーザーはページを更新する必要がなく、ページがスムーズに表示され、フロントエンドとバックエンドの作業分離モードが優れており、サーバーの負荷が軽減されます。 欠点 SEOには良くない、最初の読み込みに時間がかかる 2. ハッシュモード原則: これは、ウィンドウオブジェクトでリッスンできるonhashchangeイベントです。 vue-routerのデフォルトモードはハッシュモードです 1. URLハッシュを使用して完全なURLをシミュレートする 2. URLが変更されてもページは再読み込みされない、つまりシングルページアプリケーションである 2. # の後のハッシュが変化すると、ブラウザはサーバーにリクエストを送信しません。ブラウザがリクエストを送信しない場合、ページは更新されず、hasChange イベントがトリガーされます。ハッシュ値の変化を監視することで、ページコンテンツの一部を更新する操作を実現できます。 window.onhashchange = 関数(イベント){ console.log(イベント.oldURL、イベント.newURL); ハッシュをlocation.hash.slice(1)とします。 document.body.style.color = ハッシュ; } ハッシュ モードの場合、hashHistory オブジェクトが作成されます。異なるルートにアクセスすると、次の 2 つのことが起こります。 1. HashHistory.push() は、新しいルートをブラウザのアクセス履歴スタックの先頭に追加します。 2. HasHistory.replace() は現在のスタックの一番上のルートを置き換えます。 3.履歴モードhistory api の登場により、フロントエンドのルーティングが進化しました。以前の hashchange では、# の後の URL フラグメントのみを変更できましたが、history api ではフロントエンドに完全な自由が与えられます。
3.1 履歴ステータスの切り替え 戻る、進む、進むなど、ブラウザの進む、戻る、ジャンプ操作に対応する 3 つのメソッドがあります。たとえば、(Google) ブラウザには進むと戻るしかなく、ジャンプはありません。進むボタンと戻るボタンをマウスで長押しすると、現在のすべてのウィンドウの履歴が表示され、ジャンプ (ジャンプと呼ぶ方が適切かもしれません) できるようになります。 history.go(-2);//戻るtwicehistory.go(2);//進むtwicehistory.back(); //戻るhistory.forward(); //進む 3.2 履歴ステータスを変更する 2つのメソッド:pushStateとreplaceStateが含まれます これら2つのメソッドは、stateObj、title、urlの3つのパラメータを受け取ります。 history.pushState({color:'red'}, 'red', 'red'}) window.onpopstate = 関数(イベント){ コンソール.log(イベント.状態) イベントの状態が赤の場合 document.body.style.color = '赤'; } } 履歴を戻す 履歴を転送する ステップ 1.pushstateを介してページの状態を状態オブジェクトに保存する 2. ページURLがこのURLに戻ると、event.stateを通じて状態オブジェクトを取得できます。 3. ページの状態を復元できるように 4. ここでのページ状態は、ページのフォントの色です。実際には、スクロールバーの位置、読み取りの進行状況、コンポーネントの切り替えなどのページ状態はすべて状態に保存できます。 3.3 履歴モードが恐れるものは何ですか? ハッシュと履歴の違い 履歴モード 1. 履歴APIを通じて醜い#を取り除くが、問題もある。 2. 前進や後退を恐れるのではなく、更新を恐れてください。f5 ——履歴モードでは、URLが通常のリクエストバックエンドのURLと同じになるように変更されます。バックエンドが対応する/user/idルーティング処理で構成されていない場合は、404エラーが返されます。 ——したがって、この実装にはサーバーのサポートが必要であり、すべてのルートをルート ページにリダイレクトする必要があります。 灰モード 1. 前のハッシュ変更では、# の後の URL セグメントのみを変更できます。 pushState によって設定される新しい URL は、現在の URL と同じオリジンを持つ任意の URL にすることができます。 2. フロントエンドルーティングは # の情報を変更し、ブラウザはリクエスト時にそれを使用しないため、問題はありません。ただし、履歴の下では、パスを自由に変更できます。リフレッシュ時に、サーバー内に対応する応答またはリソースがない場合、数分以内に 404 が表示されます。 要約するこれで、vue-router のハッシュ モードと履歴モードの違いに関するこの記事は終了です。vue-router のモードの違いの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Linux で MySQL 8.0 バージョンをアンインストールする方法
>>: MySQL 8.0.15 winx64 のインストールと設定方法のグラフィックチュートリアル
目次序文プロトタイプチェーン継承コンストラクタの継承組み合わせ継承(プロトタイプチェーン継承とコンス...
1. csvファイルをインポートする次のコマンドを使用します。 1.mysql> infile...
目次1. 遅いクエリSQLを見つけて最適化する方法a. スローログに基づいてスロークエリSQLを見つ...
最近、IM を実行するときに、これらの 3 つのキーワードを同時に使用したときに問題が発生しました。...
最近、スタック コンテキストについて学習しています。学習の過程で、z-index が 0 の場合と ...
目次解決策1: レプリカを再構築する前提条件アドバンテージ欠点手順マスター奴隷解決策2: データ修復...
Flappy Bird は、誰もがアプリでプレイしたことがある非常にシンプルな小さなゲームです。ここ...
目次1. サンプルコード2. 現象を通して本質を見抜く3. 実施原則4. 親コンポーネントのコンパイ...
次のような効果がよく見られます。 そうです、ページ上でよく使われる「展開と折りたたみ」のインタラクシ...
/etc/docker/daemon.json を編集し、以下を追加します。 { "ストレ...
最近、たまたまこの小さな要件に遭遇しました。昔、JS を使用してこれを処理したことを覚えていますが、...
1. 使用バージョンバイト:2.0 ant-design-vue: 2.0.0-rc.8ヴュー:3...
コードをコピーコードは次のとおりです。 <スタイル タイプ="text/css&qu...
最近人気のWeChatタップ機能を見て、CSS3アニメーションを見直し、このボックスシェイクアニメー...
1. CentOS Linuxにffmpegをインストールする1.ダウンロードして解凍する http...