違いヴュー・ルータモードとハッシュモードの歴史

実際には3つのモードがあります。

  ハッシュ:ルーティングとURLのハッシュ値を使用して。すべてのブラウザをサポートしています。

  歴史:HTML5履歴APIとサーバーの設定以来。公式サイトHTML5履歴モードを参照してください。

  要約:すべての動作モード用のJavaScriptサポート。APIは、ブラウザ発見されていない場合、ルーティングは自動的にこのモードに強制的に。

 

 

関係ヴュー・ルータモードとハッシュモードの歴史の中で

最も直感的な違いは醜い歴史を持つURLハッシュ内のルーティングの設定VUEであるためのモードのオプションがありますが、全くの##のはありません

モード:「ハッシュ」。  
モード:「歴史」。  

異なるハッシュパターンと履歴モード

VUEようなプログレッシブフロントエンド開発フレームワークのために、SPA(シングルページアプリケーション)を構築するために、存在ヴュー・ルータの意味であるフロントエンドルーティングシステムを導入する必要があります。コアフロントエンドルート、ということである - バックエンドに閲覧要求を変更しないいます。

これを達成するために、ブラウザは、現在、以下の二つのサポートを提供します:

  • ハッシュ - 、#記号のURLアドレスバー(これはハッシュ操作で暗号化ハッシュではありません)です。たとえば、このURLます。http:#の//www.abc.com/#/hello,hash値/こんにちは。URLに存在するものの、ハッシュが、HTTPリクエストに含まれることはありません、バックエンドには影響がない、ので、ハッシュを変更するとページをリロードしません:それは、ことを特徴としています。
  • 歴史 - pushState()とreplaceState()メソッドにHTML5の歴史のインターフェイスで新しいを使用。ブラウザの履歴スタックに使用されるこれらの2つの方法、既存のバック電流(特定のブラウザのサポートが必要)、前方に、土台が上に行く、彼らは歴史を変更する機能を提供します。彼らは現在のURLの変更が、変更を実行しますが、ブラウザはすぐにバックエンドにリクエストを送信していない場合のみです。
  • そこで我々は、ハッシュパターンと履歴モデルは、ヴュー・ルータは、単にフロントエンドのルートを達成するために、これらの2つの機能(ブラウザを呼び出すことによって提供されるインターフェイス)を使用し、独自のブラウザ機能に属していると言うことができます。

利用シナリオ

あなたは色の値についての詳細を気にしない限り、一般的なシナリオでは、ハッシュと歴史の中で、URLを含めることで#記号はやや美しく見えるんことができます。

あなたが醜いハッシュしたくない場合は、我々は歴史のルーティングモードを使用することができ、このモデルは、ページをリロードすることなく、ジャンプを完了するために、history.pushState API URLを活用します。

加えて、記載直接ハッシュ、以下の利点を変更するために比べhistory.pushState()を呼び出し、Mozillaがネットワークを開発導入します。

  • 現在のURLに設定された新たなURL pushState()は、任意のURL相同であり得る;及び、ハッシュ#のみ後部セクションを変更することができ、それだけ、文書のURLと現在のURLを設定することができます。
  • pushState()新しいURLが現在のURLと正確に同じにすることができ、それはまた、スタックにレコードを追加します設定する;およびアクションがスタックにレコードを追加しますトリガするために、新しいハッシュ値が同じオリジナルではないで設定する必要があります。
  • pushStateに()stateObjectによって記録パラメータに任意のタイプのデータに追加することができ、かつ短い文字列のハッシュを追加します。
  • pushState()に加えて、その後の使用のためのタイトル属性を設けてもよいです。

もちろん、歴史はすべてが良いですされていません。ブラウザでの能力もののSPAが、あなたが本当にURL経由のバックエンドへのHTTP要求を開始したい場合には、2つの違いは来ました。特に、ユーザの後に手動で入力、または(再起動)ブラウザの時間をリフレッシュURLを入力してください。

マイクロチャネル活性開発プロセスにおける個人ハッシュ・アクセス・モードを開始しますが、戻って私の後ろにバックエンドのurlパラメータ#に得ることができなかったので、彼は前に#で記述されたパラメータを取ったが、議論の後に、この巨大な醜いを削除することにしました#

これまでの歴史モードに切り替えているので、そのプロセスは問題ありませんときに実行し始めたが、後にジャンプやバウンス後にさわやか見つけ、404エラーを報告します指定したルートを見つけることができず、最終的には正しいバックエンドルーティングを指すように{:パス}解決した本/ HD /存在する場合プラス/ HD / xxxは一致します

概要

ハッシュモード1は、前回のハッシュ記号の内容のみが完全なカバレッジを達成するために、NOルートがない場合でも、そのようなhttp://www.abc.comよう要求するので、後端部に含まれ、返しません404エラー。

2履歴モード、URLの前端とURLは、http://www.abc.com/book/idとして実際の一貫性の後端に要求を開始しなければなりません。/書籍/ ID経路処理のバックエンドの欠如は、404エラーを返す場合。ヴュー・ルータのような記述で公式サイト:「しかし、あなたはうまくプレーしたい、このモードではなく、背景の設定サポート......だから、あなたはサービス側ですべての状況をカバーするために候補リソースを追加したい:URLは任意の静的リソースと一致する場合、あなたのアプリページに依存している同じindex.htmlのページを返す必要があります。」

履歴モードと、経路の前端と後端(Apacheまたはnginxの)での単純なルーティング構成を有する一般的なヴュー+ヴュー、ルータ+のWebPACK + XXX Webフォーム開発シナリオの独自例3、でき、 404ページがサポートされています。

おすすめ

転載: www.cnblogs.com/wangtong111/p/11278953.html