vue.js 學習手冊 框架的選擇與導入

這篇文章是vue.js學習手冊的第一篇文章,也是我認為最難寫的一篇文章,就像vue.js提到的他是一個“漸進式”框架,在這篇文章也想要跟各位分享選擇框架的一些原則,讓大家可以“漸進式”的了解為什麼我們在網頁開發時需要選擇一個框架來幫助我們,在選擇框架之前我們要先弄清楚,框架究竟可以幫助我們在網頁開發上的哪些部分,如果這些部分跟你要開發的項目並不媒合,那奉勸你別把單純的事情搞複雜了,而且你可能會開始討厭學習框架,但若反之,你一定會愛上框架,甚至覺得他讓你事半功倍。

強大的前、後端串接功能


現代的網頁被要求除了有著摩登的前端UI之外,在網頁中的資料有常需要配合“大數據”下的資料進行呈現,說白話一點也就是網頁上面呈現的資料並不是寫死在頁面中的,而是透過後端資料庫取出來的,舉凡會員登入的名稱、購物網站中的商品資訊、新聞網站中的新聞就連你現在看到的這篇文章,也都是存放於資料庫中,網頁去對資料庫進行讀取後顯示在介面上的。

當然除了對資料庫進行讀取之外,網頁也會對資料庫進行儲存的動作,舉凡會員資料修改、商品訂單建立、網站偏好設定…等等,而框架在這方面有許多很好的方法,讓我們可以更周全快速的處理這方面的動作,節省許多開發的時間與減少Bug上的產生。

模組化開發架構


在一個大型網站中,可能有許多網頁中會出現相同風格的元素,例如:下拉式選單、按鈕、分頁導覽,是每一個頁面都會重複應用到的一些元件,傳統的網頁開發上就是在每一頁嵌入對應的HTML Code,這樣的做法非但不易維護,也會增加許多冗長且重複的程式碼。

模組化開發可以如上圖所示,將頁面中需重用的元素拉出來設計成一個Component,在不同頁面可以透過引入的方式置入該Component,而Component的維護可以統一在該Component中進行,可以減少大量維護上的時間。

透過 Virtual DOM 來提升頁面效能


現代的網頁前端框架為了提升頁面操作的效能都提供了Virtual DOM,在Vue.js 2.0中也引入Virtual DOM,比Vue.js 1.0的初始渲染速度提升了2~4倍,並大大降低了內存消耗,至於為何Virtual DOM能提昇網頁的效能,大家就必須了解我們透過Javascirpt更新實體DOM時會產生的效能問題開始了解。

實體DOM更新的效能測試

這邊製作一個簡單的範例對實體DOM和虛擬DOM的效能進行說明:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title></title>
</head>
<body>
  <div class="wrapper">
    <div class="container">
      <div class="itemList">
        <ul id="itemList__ul">
          <li id="liID">Item 1</li>
        </ul>
      </div>
    </div>
    <button onClick="insertItems()">Go</button>
  </div>
</body>
</html>
<script>
  var itemData = "";
  function insertItems() {
    for (var i = 1; i <= 100000; i++) {
      itemData = "Item " + i
      document.getElementById("liID").innerHTML = itemData;
    }
  }
</script>

在HTML DOM的操作上,只要頁面元素有變更,就可能會觸發Reflow或Repaint這樣的動作,瀏覽器也會耗費相當多的資源在進行這些動作,以上述的例子來看,當我們按下頁面上的按鈕之後,就會透過迴圈去改變li的內容,這樣將會觸發多次的瀏覽器動作。

下圖是我們在Chrome中獲得的效能資訊:

若是我們將上述程式中的第26行移除,則效能會改變如下圖所示:

這樣可以很明確的了解效能殺手就是程式中的第26行,而這行程式的目的是去更新瀏覽器中的內容,若沒有這行沒辦法讓使用者看到最終的結果,因為我們必須透過這樣的方式更新DOM內容。

虛擬DOM的效能測試

同樣頁面的效果,我們在Vue裡面的作法如下:

<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title></title>
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
  <div id="app">
    <ul>
      <li v-for="item in items">{{ item.message }}</li>
    </ul>
    <button @click="insertItems">Go</button>
  </div>
</body>
</html>
<script>
    var vueData = {
        items: [
      { message: 'Item 1' }
    ]
    }
    var app = new Vue({
        el: '#app',
        data: vueData,
    methods: {
      insertItems: function(){
        for(var i = 1; i <= 100000; i ++){
          vueData.items[0].message = "Item " + i;
        }
      }
    }
    })
</script>

同樣的結果在Vue會在Javascript和瀏覽器中加入一層Virturl DOM,待Virturl DOM更新完畢之後,在寫入瀏覽器中。

透過這樣的方法,使用這得到的一樣的效果,但大大提高了使用者端瀏覽器的效能,可以從下圖觀察的出來!

在Virtual DOM的架構中,會把程式的動作動作集中在Virtual DOM中運算,當確定整個頁面結構之後,再一次性地將結果繪製到頁面中,可以想像成原本的DOM操作就是在每一次在CPU運算之後,直接把結果寫到硬碟當中,而Virtual DOM就是在CPU與硬碟間加入了記憶體層,CPU運算後先將結果儲存在記憶體中,最後再將記憶體的資料一次性的寫入硬碟

PS:記憶體的運算速度超過硬碟很多倍。

結論


綜合上述所說,網頁專案中採用前端框架,有著減少開發時間、易於維護、增加頁面效能…等優點,但若你的專案並不會大量與後端串接、製作上元件重複使用的機會不高、在頁面中也不太會對DOM進行Reflow與Repaint,可能是一個活動網頁、公司形象網頁…等,也許就沒有必要去選用一個前端框架,簡言之工具用在正確的地方,才能顯現出它的價值,當然目前符合使用框架的專案也一定非常多,也就是這樣的原因,才會造成前端框架的流行。

You may also like...

114,086 Responses

  1. Dwightkak表示:

    pharmacy rx world canada: canadian 24 hour pharmacy – usa canada pharm

  2. 1win_eekr表示:

    1win прямой эфир https://1win7018.ru .

  3. Diplomi_lxEa表示:

    Приобрести диплом университета!
    Мы готовы предложить документы университетов, которые расположены на территории всей РФ.
    diploml-174.ru/legalnoe-zanesenie-diploma-v-reestr-2/

  4. Mazrbzk表示:

    Мы можем предложить дипломы любых профессий по выгодным тарифам. Всегда стараемся поддерживать для заказчиков адекватную ценовую политику. Для нас важно, чтобы документы были доступны для большого количества наших граждан.
    Приобретение диплома, подтверждающего обучение в ВУЗе, – это рациональное решение. Заказать диплом о высшем образовании: diplom5.com/kupit-diplom-visshee-7/

  5. Dwightkak表示:

    onlinecanadianpharmacy: online pharmacy canada – USACanadaPharm

  6. TimothyDok表示:

    USACanadaPharm usa canada pharm canadian pharmacy mall

  7. DonnieFut表示:

    Текст

    Oops! All Berries оказывает бодрящее действие, которое не является подавляющим, но, скорее, может вызвать чувство лени. Сорт отлично подходит для творческого вдохновения, а также для того, чтобы избавиться от любых тревожных мыслей. Часто его выбирают пациенты, страдающие от таких состояний, как хроническая боль, беспокойство или стресс, бессонница и потеря аппетита

    Banana Nerds is a hybrid marijuana strain that is indica dominant. This strain tastes and smells similar to fresh bananas. The strain tends to provide a soft high along with a relaxed feeling of euphoria. A great choice when dealing with stress or depression, Banana Nerds also helps stimulate your creative thoughts and can help you stay talkative in social settings.

    https://secretvape.shop/

  8. Diplomi_rlEa表示:

    Купить диплом университета!
    Мы можем предложить документы учебных заведений, которые расположены на территории всей Российской Федерации.
    rusd-diplomj.ru/kupite-originalnij-diplom-s-zaneseniem-v-reestr-5/

  9. 1win_goMn表示:

    1win скачать последнюю версию http://www.1win7006.ru .

  10. Liwufuepat表示:

    Our website https://managerscasino.com/ is the ultimate guide for players who want to take control of their casino experience. It is where I share my ideas, strategies and tips for players who want to be in control, not just another number on the casino profit margin. My goal is to help players navigate the casino world with confidence, knowledge and a winning attitude.

  11. Albertbiave表示:

    https://usacanadapharm.com/# best canadian pharmacy online

  12. TimothyDok表示:

    USACanadaPharm legit canadian pharmacy online canadian pharmacy reviews

  13. Albertbiave表示:

    http://usacanadapharm.com/# usa canada pharm

  14. 1win_vikr表示:

    сайт 1win официальный сайт вход http://www.1win7018.ru .

  15. betafuexerA表示:

    Доверие – центр, который психологические услуги предоставляет. Мы помогаем людям справляться с трудностями, которые у них возникают в отношениях с собой и окружающими. Записаться к специалисту на личный прием вы можете по телефону на портале. Ищете психотерапия? Ack-group.ru/stati-po-psikhologii/psikhoterapiya – тут узнаете, что такое психотерапия, кому она показана и какие перед ней стоят цели. Также тут представлены расценки на психологические консультации. Всегда готовы поддержать вас на пути к самопознанию и эмоциональному равновесию.

  16. LojaneNet表示:

    Потеря близкого человека — это тяжелое испытание, и в такой момент важно, чтобы всё было организовано достойно и без лишних хлопот. ГБУ «Ритуал» Москва https://ritualmsk.com/ предлагает полный спектр ритуальных услуг, беря на себя все заботы: от транспортировки и оформления документов до выбора места захоронения. Наши специалисты помогут вам организовать похороны в Москве по всем правилам, обеспечивая уважение к памяти усопшего и поддержку для родственников.

  17. Dwightkak表示:

    usa canada pharm: USACanadaPharm – cross border pharmacy canada

  18. Williamsnupt表示:

    nba免費線上看
    2025年NBA免費線上看直播:籃球投注與即時更新的完整指南

    隨著全球體育迷對線上博弈和賽事直播的需求不斷增長,NBA作為最受歡迎的籃球聯賽之一,自然成為了眾多球迷關注的焦點。2025年的NBA賽季將帶來更多精采的比賽,而如何免費觀看這些比賽並參與場中投注,已成為球迷們最關心的話題。本文將為您提供完整的NBA免費線上看直播教學、即時比分更新、以及相關的投注技巧。

    一、NBA免費線上看直播的管道
    不論是季後賽(4月-5月)還是總決賽(6月),NBA的每一場比賽都充滿激情與挑戰。以下是幾種常見的免費直播方式:

    1. 線上直播平台
    OB體育電視台 、鑫寶體育電視台 、SUPER體育電視台 等平台提供免費註冊服務,新用戶還可獲得168預測金,讓您在觀看比賽的同時也能進行運彩投注。
    只需簡單註冊帳號,選擇【熊貓體育】或【RG富遊體育電視台】,即可輕鬆進入NBA籃球LIVE直播。
    2. 電視轉播頻道
    華視NBA籃球頻道 、ELTA TV 、以及中華電信MOD 也提供64場全賽事的LIVE轉播,適合喜歡透過電視欣賞比賽的球迷。
    如果您偏好手機觀看,可以訂閱Hami Video NBA專區 ,每月僅需149元即可享受所有賽事的高清轉播。
    二、如何註冊/登入以免費觀看NBA直播?
    如果您想通過線上平台觀看NBA直播,以下是詳細步驟:

    點選【RG官網】或【富遊娛樂城】官網,選擇「註冊/登入」。
    輸入會員資料完成註冊。
    登入後,點選【熊貓體育】或【體育直播】分類。
    選擇NBA籃球視頻直播,即可免費觀看您感興趣的比賽。
    三、NBA即時比分與場中投注
    對於熱衷於運動彩券的球迷來說,NBA不僅是一場視覺盛宴,更是投注的好時機。以下是一些實用的投注建議:

    即時比分更新 :透過【RG富遊體育電視台】或【熊貓體育】,您可以隨時掌握比賽進展,並根據比分變化調整投注策略。
    場中投注技巧 :例如,在比賽關鍵時刻(如延長賽或最後三分鐘),利用即時數據進行快速下注,往往能提高勝率。
    此外,NBA季後賽和總決賽期間,各平台通常會推出特別優惠活動,例如加倍獎金或贈送預測金,讓您的投注更有趣味性。

    四、其他熱門賽事推薦
    除了NBA之外,2025年還有許多值得期待的體育盛事:

    2024夏季奧運 :涵蓋多項運動項目,是體育迷不容錯過的國際賽事。
    2024歐洲盃 :足球迷的年度盛宴,各國勁旅爭奪最高榮譽。
    2024 WBC世界棒球經典賽 :棒球愛好者的狂歡節,亞洲強隊表現備受矚目。
    2023-2024英超聯賽 :足球迷必追的頂級聯賽,精彩程度無與倫比。
    五、結語
    無論您是單純的NBA球迷,還是熱衷於運動彩券投注的玩家,2025年的NBA賽季都將為您帶來無限樂趣。透過本文介紹的免費直播管道與投注技巧,您可以輕鬆享受每場比賽的刺激與精彩。現在就趕快註冊帳號,加入這場籃球狂歡吧!

    立即行動!登入【熊貓體育】或【RG富遊體育電視台】,開啟您的NBA免費線上看之旅!

發佈回覆給「Thomasskync」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。