demoと結びつけてvueルーティングの実現原理を簡単に述べる
1820 ワード
本文はdemoと結びつけてvueルーティングの実現方式を浅く述べる.ビューを更新するがページを要求しないことがルーティングの核心的な需要であり、現在ブラウザで実現するには主に2つの方式がある.URLのhash値を利用する html 5のhistoryメソッドhashメソッドでルーティング基本原理を基本的に実現するURLの中の#とその後ろの文字をhashと呼び、windowを通過することができる.location.hash属性読み出し hashはURLに表示するが、httpリクエストには含まれず、サービス側には無効であるため、hashを変更してページを再リクエストやロードすることなく、基本ルーティング動作を実現することができる.
hash変更イベントの傍受:
HTML 5 History go()back()forward()の方法で履歴スタックを表示する方法で、HTML 5から様々なジャンプ操作を行うことができます.history interfaceは、2つの新しい方法を提供する:
参考文献アドレス:https://segmentfault.com/a/1190000014822765 demo github:https://github.com/lwkk1994/vuerouter-principle
hash変更イベントの傍受:
window.onhashchange = function (e) {
console.log(e.oldURL, e.newURL);
var hash = location.hash.slice(1);
document.body.style.color = hash;
}
hash値を変更するたびにブラウザに履歴を追加し、ブラウザが前進/後退ボタンを持参することでアクセスできる.以上の例は、hash値の変更を傍受することによりhash値中の文字を取得し、さらにhtmlスタイルを変更するhash基本ルーティングを実現する方法の考え方である.HTML 5 History go()back()forward()の方法で履歴スタックを表示する方法で、HTML 5から様々なジャンプ操作を行うことができます.history interfaceは、2つの新しい方法を提供する:
pushState()
およびreplaceState()
ブラウザ履歴スタックを修正できるようにする:
history.replaceState(null,null,'');// , replace
$('#router').html('
nav
')
$('a').on('click',function(){
console.log(this.text)
var text = this.text;
$('#router').html(''+ text +'
')
history.pushState(null,null,text);
})
・例ではreplaceState()
方法でhistory記録スタックをクリアし、さらにhistory.pushState()
方法でurlを付与する.ここでは、この2つの方法の3つのパラメータについて簡単に説明する必要があります.最初のパラメータstate:指定したウェブサイトに関連するステータスオブジェクトで、popstateイベントがトリガーされると、そのオブジェクトがコールバック関数に入力されます.このオブジェクトが必要ない場合はnullを入力します.2番目のtitle:新しいページのタイトルですが、すべてのブラウザは現在この値を無視しているので、nullを入力できます.3番目のurl:新しいウェブサイトは、ページと同じドメイン内にある必要があります.URLには、この値の例ではpushState()
メソッドによりurl値が付与されているが、サーバに再要求することなく、ルーティングホッピングの基礎が実現する.参考文献アドレス:https://segmentfault.com/a/1190000014822765 demo github:https://github.com/lwkk1994/vuerouter-principle