vue入坑*(一)文件引用順序

正確寫法

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Vue 測試實例 - 菜鳥教程(runoob.com)</title>
    <script src="../node_modules/vue/dist/vue.min.js"></script>
</head>
<body>
<div id="app">
    <p>{{ message }}</p>
</div>
    <script src="../node_modules/vue/dist/lesson1.js"></script>
</body>
</html>


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Vue 測試實例 - 菜鳥教程(runoob.com)</title>
    <script src="../node_modules/vue/dist/vue.min.js"></script>
</head>
<body>
<div id="app">
    <p>{{ message }}</p>
</div>
<script>
    var lesson1=new Vue({
        el: '#app',
        data: {
            message: '進擊的 Vue.js!'
        }
    });
</script>
</body>
</html>

錯誤寫法


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Vue 測試實例 - 菜鳥教程(runoob.com)</title>
    <script src="../node_modules/vue/dist/vue.min.js"></script>
    <script src="../node_modules/vue/dist/lesson1.js"></script>
</head>
<body>
<div id="app">
    <p>{{ message }}</p>
</div>
</body>
</html>

原因分析

參考  HTML頁面的加載順序

         head標籤中會包含一些引用外部文件的代碼,從開始運行就會下載這些被引用的外部文件
         當遇到script標籤的時候
         瀏覽器暫停解析(不是暫停下載),將控制權交給JavaScript引擎(解釋器)
         如果<script>標籤引用了外部腳本,就下載該腳本,否則就直接執行,執行完畢後將控制權交給瀏覽器渲染引擎


         如果此時遇到body標籤中的<script>,同樣會將控制權交給JavaScript引擎來解析JavaScript
         解析完畢後將控制權交還給瀏覽器渲染引擎。
         當body中的代碼全部執行完畢、並且整個頁面的css樣式加載完畢後,css會重新渲染整個頁面的html元素

         所以<script>寫到body標籤內靠後比較好,
         因爲JavaScript 會操作html元素, 如果在body加載完之前寫JavaScript 會造成JavaScript 找不到頁面元素
         但是我們經常將<script>寫到head中,body中不會有大量的js代碼,body中的html代碼結構會比較清晰
總結

        用於數據綁定的js代碼應放在所有待解析的dom之後再執行,一勞永逸的做法是堅持把js文件寫在body最後再加載,有助於優化網頁加載,也減少了出錯率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章