vue-router 原理(1)


 hashchange 

  第一講,大概說一下 vue-router使用hash模式下 地址欄地址變化時發生的事情

  當 一個窗口的 hash (URL 中 # 后面的部分)改變時就會觸發 hashchange 事件

  

window.onhashchange = funcRef;
<body onhashchange="funcRef();">

上面兩種寫法都可以,但是將覆蓋現有的事件處理程序,為了添加一個新的事件處理程序,而不覆蓋掉已有的其他事件處理程序,可以使用函數 "addEventListener",

<!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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM