第一講,大概說一下 vue-router使用hash模式下 地址欄地址變化時發生的事情html
當 一個窗口的 hash (URL 中 # 後面的部分)改變時就會觸發 hashchange 事件vue
window.onhashchange = funcRef; <body onhashchange="funcRef();">
上面兩種寫法均可以,可是將覆蓋現有的事件處理程序,爲了添加一個新的事件處理程序,而不覆蓋掉已有的其餘事件處理程序,可使用函數 "addEventListener",vue-router
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <div id="app"> <a href="#/login">登陸頁面</a> <a href="#/register">註冊頁面</a> <div id="contain"> </div> </div> </body> <script> if ("onhashchange" in window) { // 該瀏覽器支持 hashchange 事件! window.addEventListener("hashchange", funcRef, false); } var ele = document.getElementById('contain'); function funcRef() { var localHash = location.hash; switch (localHash) { case '#/login': ele.innerHTML = "<h1>登陸頁面</h1>" break; case '#/register': ele.innerHTML = "<h1>註冊頁面</h1>" break; default: break; } console.log() } </script> </html>