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

49,537 Responses

  1. BernardVibre表示:

    choi casino tr?c tuy?n trên di?n tho?i: casino tr?c tuy?n vi?t nam – casino tr?c tuy?n uy tín

  2. Рейтинг букмекеров на сегодня
    лучшие букмекерские конторы в беларуси букмекерская контора бетвиннер .

  3. WalterJuisk表示:

    https://casinvietnam.shop/# casino tr?c tuy?n uy tin

  4. Ferifabreet表示:

    Profitati de oportunitatea de a imbunatati atat performanta cat si stilul cu incaltamintea de top de la Puma. Vizitati site-ul nostru acum si alegeti modelele care va definesc cel mai bine personalitatea si nevoile!Sunteti in cautarea unor pantofi de inalta calitate? Explorati oferta noastra exclusiva pe incaltaminte unde veti gasi cea mai variata selectie de incaltaminte Puma. Indiferent daca doriti pantofi pentru jogging, optiuni elegante pentru uz zilnic sau incaltaminte robusta pentru antrenamente intense, Puma Moldova are tot ce va trebuie pentru a satisface fiecare preferinta.

  5. BernardVibre表示:

    casino tr?c tuy?n: web c? b?c online uy tín – casino tr?c tuy?n vi?t nam

  6. Рейтинг букмекеров на сегодня
    букмекерские приложения марафон букмекерская контора .

  7. WalterJuisk表示:

    https://casinvietnam.shop/# casino tr?c tuy?n vi?t nam

  8. BernardVibre表示:

    casino tr?c tuy?n vi?t nam: casino tr?c tuy?n vi?t nam – casino online uy tín

  9. BernardVibre表示:

    web c? b?c online uy tín: casino online uy tín – game c? b?c online uy tín

  10. SLhaneevige表示:

    Привет всем!
    купить диплом колледжа

    Желаю любому отличных оценок!
    http://www.mybaltika.info/ru/blogs/587/7778/

    купить диплом Гознак
    купить диплом бакалавра
    купить диплом колледжа

  11. bukmeker_cspl表示:

    букмекерские приложения https://sport-bk.by .

  12. WalterJuisk表示:

    http://casinvietnam.shop/# casino tr?c tuy?n vi?t nam

  13. Williamorent表示:

    Комплексное продвижение сайтов в Москве https://seosferaya.ru/ под ключ. SEO раскрутка сайта в топ Яндекс и Google от профессионалов, первые результаты уже через месяц. Комплексное продвижение сайтов с гарантией.

  14. BernardVibre表示:

    casino online uy tín: casino tr?c tuy?n uy tín – casino tr?c tuy?n vi?t nam

  15. Секреты безопасной покупки диплома онлайн
    диплом купить настоящий http://www.kupyt-diplom.ru/ .

  16. RobertGrogy表示:

    Поисковое SEO продвижение сайтов в Москве https://seosferaya.ru/, стоимость тарифов на быструю и недорогую раскрутку сайта в ТОП-10. Оптимизация сайтов в поисковых системах Яндекс и Google. Быстро раскручиваем сайты за счет опыта. Тарифы и цены, кейсы и результаты наших работ в Москве и других крупных городах РФ

  17. sSdfffobelors表示:

    Доброго всем дня!

    Бывало ли у вас такое, что приходилось писать дипломную работу в крайне сжатые сроки? Это действительно требует огромной ответственности и напряженных усилий, но важно не опускать руки и продолжать активно заниматься учебными процессами, как я.
    Для тех, кто умеет быстро находить и анализировать информацию в сети, это действительно помогает в процессе согласования и написания дипломной работы. Больше не нужно тратить время на посещение библиотек или устраивать встречи с дипломным руководителем. Здесь, на этом ресурсе, предоставлены надежные данные для заказа и написания дипломных и курсовых работ с гарантией качества и доставкой по всей России. Можете ознакомиться с предложениями на сайте , это проверено!
    http://boltushka.flybb.ru/viewtopic.php?f=14&t=1110
    купить аттестат школы
    купить диплом института
    купить диплом специалиста
    купить диплом колледжа
    купить диплом ссср

    Желаю любому пятерошных) оценок!

  18. BernardVibre表示:

    game c? b?c online uy tín: casino tr?c tuy?n vi?t nam – casino tr?c tuy?n vi?t nam

  19. Casino Oyunları: Başlangıç Rehberi
    En Popüler Casino Oyunları ve Kazanma Stratejileri
    Online Casino Oyunlarında Kazanmanın Püf Noktaları
    Casino Oyunları Tarihi: Nasıl Gelişti?
    Canlı Casino Oyunları: Gerçek Deneyimi Evden Yaşayın
    Ücretsiz Casino Oyunları ile Pratik Yapın
    Jackpot: Casino Oyunlarında Büyük Kazanç Elde Etme Sanatı
    Mobil Casino Oyunları: Her Yerde Oynama Özgürlüğü
    Casino Oyunlarındaki Matematik: Kazanma Şansınızı Nasıl Artırırsınız?

    Sanal Gerçeklikte Casino Oyunları: Geleceğin Eğlencesi
    casino oyunları
    slot oyunları
    Gerçek paralı casino oyunları
    Bedava casino oyunları
    Online casino oyunları
    Slot gazino oyunları ücretsiz
    En güvenilir online casino
    Para kazandiran kumar oyunları
    Casino kumar oyunları
    Yasal casino siteleri
    Bedava slot oyunları
    Ücretli slot oyna
    En kazançlı slot oyunları
    Para kazandiran slot oyunları
    canlı slot siteleri
    Bedava slot oyunu oyna eğlenceli

    Casino oyunları, slot oyunları, gerçek paralı
    casino oyunları ve bedava casino oyunları gibi çeşitli seçenekler sunan online casino siteleri, kullanıcılarına eğlenceli ve kazançlı bir deneyim sunar.
    Yasal casino siteleri aracılığıyla güvenilir bir şekilde
    oynayabileceğiniz slot oyunları, para kazandıran kumar oyunları arasında yer
    alır. Ücretsiz veya ücretli olarak oynayabileceğiniz slot oyunları,
    canlı slot sitelerinde de bulunur. Eğlenceli ve kazançlı bir deneyim için bedava slot oyunlarına
    göz atabilirsiniz.Casino oyunları, gerçek paralı veya bedava olarak oynanabilen ve online platformlarda sunulan oyunlardır.
    Bu oyunlar arasında en popüler olanları slot oyunlarıdır.
    Slot oyunları, slot gazino oyunları ücretsiz olarak da oynanabilen ve para kazandıran kumar oyunlarıdır.
    Bu oyunlar, en güvenilir online casinolarda
    oynanmalıdır. Yasal casino siteleri, para kazançlı
    ve güvenilir oyun deneyimi sunar. Bedava slot oyunları da eğlenceli bir şekilde oynanabilir.
    Ücretli slot oyna seçeneği ise daha kazançlı bir oyun deneyimi sunar.
    Canlı slot siteleri ise gerçek krupiyelerle oynanan heyecanlı oyunlardır.
    Bedava slot oyunu oyna seçeneğiyle de eğlence
    dolu anlar yaşanabilir.
    Casino Oyunları ve Slot Oyunları: En Kazançlı Kumar Deneyimi
    Casino oyunları, slot oyunları ve gerçek paralı casino oyunları ile heyecan dolu bir kumar deneyimi yaşayabilirsiniz.

    Bedava casino oyunları ile eğlenceli vakit geçirebilirsiniz.

    Online casino oyunları ile dünyanın her yerinden oyuncularla yarışabilirsiniz.

    Slot gazino oyunları ücretsiz olarak sunulan seçenekler arasında yer alır.

    En güvenilir online casino siteleri üzerinden oyunlarınızı oynayabilirsiniz.

    Para kazandıran kumar oyunları ile şansınızı deneyebilir
    ve büyük ödüller kazanabilirsiniz.
    Neden casino oyunları oynamalıyım?
    Casino oyunları, eğlenceli ve heyecan verici bir oyun deneyimi sunar.
    Gerçek paralı veya bedava oyun seçenekleriyle, farklı
    oyunlar deneyebilir ve kazanç elde edebilirsiniz.
    Casino oyunları ayrıca sosyal bir ortamda diğer oyuncularla
    etkileşim kurma fırsatı da sunar.
    En güvenilir online casino siteleri hangileridir?

    En güvenilir online casino siteleri, lisanslı ve düzenli olarak denetlenen sitelerdir.

    Güvenilir bir casino sitesi, oyuncuların kişisel ve finansal bilgilerini korur, adil oyun sağlar ve kazançlarını
    zamanında öder. İyi bir online casino sitesini seçerken, kullanıcı yorumlarını,
    lisans bilgilerini ve güvenlik önlemlerini dikkate almanız önemlidir.

    Para kazandıran kumar oyunları hangileridir?

    Para kazandıran kumar oyunları arasında slot oyunları,
    blackjack, rulet ve poker gibi popüler oyunlar bulunur.
    Bu oyunlarda strateji ve şansınızı kullanarak kazanç elde edebilirsiniz.
    Her oyunun farklı bir kazanma potansiyeli vardır, bu nedenle farklı oyunları deneyerek en çok kazandıranları bulabilirsiniz.

    Yasal casino siteleri nasıl tespit edilir?
    Yasal casino siteleri, genellikle lisanslı ve düzenli olarak denetlenen sitelerdir.
    Bir casino sitesinin yasal olup olmadığını kontrol etmek için, sitenin lisans
    bilgilerini ve düzenleyici kuruluşun güvenilirliğini araştırabilirsiniz.
    Ayrıca kullanıcı yorumları ve forumlardaki deneyimleri de değerlendirebilirsiniz.

    Bedava slot oyunları nerede oynanabilir?
    Bedava slot oyunları, çoğu online casino
    sitesinde veya oyun sağlayıcıların resmi web sitelerinde oynanabilir.
    Bu oyunları ücretsiz olarak deneyebilir ve eğlenceli vakit geçirebilirsiniz.
    Bedava slot oyunları, gerçek paralı oyunlara benzer özelliklere sahip olabilir ve bazıları
    bonus özellikler sunabilir.
    Ücretli slot oyunları nasıl oynanır?
    Ücretli slot oyunları, gerçek parayla oynanan oyunlardır.
    Bir online casino sitesine üye olmanız ve hesabınıza para yatırmanız gerekmektedir.
    Ardından, istediğiniz slot oyununu seçebilir ve bahis yapabilirsiniz.
    Kazançlarınızı çekebilmeniz için oyunun kurallarını ve
    ödeme yöntemlerini bilmeniz önemlidir.
    En kazançlı slot oyunları hangileridir?
    En kazançlı slot oyunları, yüksek ödeme oranına sahip
    olanlardır. Bazı slot oyunları, jackpot veya bonus özellikleriyle büyük kazançlar sunabilir.
    Oyun sağlayıcıların ödeme oranlarını ve jackpot geçmişini inceleyerek en kazançlı
    slot oyunlarını bulabilirsiniz.
    Para kazandıran slot oyunları nasıl bulunur?

    Para kazandıran slot oyunlarını bulmak için, oyun sağlayıcıların ödeme
    oranlarını ve oyunların volatilitesini inceleyebilirsiniz.
    Ayrıca kullanıcı yorumları ve deneyimlerini değerlendirebilirsiniz.
    Farklı slot oyunlarını deneyerek hangilerinin size daha fazla kazanç
    sağladığını görebilirsiniz.
    Canlı slot siteleri nelerdir?
    Canlı slot siteleri, gerçek krupiyelerle oynanan slot oyunlarını sunan sitelerdir.

    Bu sitelerde, gerçek bir casino ortamında oyun oynayabilir ve
    krupiyelerle etkileşim kurabilirsiniz. Canlı slot siteleri genellikle daha interaktif bir deneyim sunar ve oyuncular arasında rekabeti artırır.

    Bedava slot oyunu oynamak eğlenceli midir?

    Bedava slot oyunu oynamak, eğlenceli bir deneyim sunar.
    Ücretsiz olarak oynayabileceğiniz birçok farklı slot
    oyunu bulunur ve bu oyunları deneyerek farklı temaları ve özellikleri keşfedebilirsiniz.
    Bedava slot oyunları, gerçek paralı oyunlara benzer grafik
    ve ses efektlerine sahip olabilir.
    Casino kumar oyunları nasıl oynanır?
    Casino kumar oyunlarını oynamak için, öncelikle bir casino sitesine üye olmanız
    gerekmektedir. Ardından, istediğiniz oyunu seçebilir ve bahis yapabilirsiniz.
    Oyunun kurallarını ve stratejilerini öğrenmek önemlidir.

    Kumar oyunları arasında slot oyunları, blackjack,
    rulet ve poker gibi popüler seçenekler bulunur.
    Casino oyunları neden popülerdir?
    Casino oyunları, heyecan verici bir oyun deneyimi sunması ve
    kazanç elde etme şansı sağlaması nedeniyle popülerdir.
    Ayrıca farklı oyun seçenekleri, bonuslar ve promosyonlar da oyuncuları cezbetmektedir.
    Casino oyunları aynı zamanda sosyal bir ortamda diğer oyuncularla etkileşim kurma fırsatı da sunar.

    Slot gazino oyunları ücretsiz olarak nerede oynanabilir?

    Slot gazino oyunları, çoğu online casino sitesinde veya oyun sağlayıcıların resmi
    web sitelerinde ücretsiz olarak oynanabilir. Bu oyunları deneyerek farklı temaları ve özellikleri keşfedebilirsiniz.

    Ücretsiz slot oyunları, gerçek paralı oyunlara benzer grafik ve ses
    efektlerine sahip olabilir.
    Casino oyunları neden tercih edilmelidir?
    Casino oyunları, eğlenceli bir oyun deneyimi sunması ve kazanç elde etme şansı
    sağlaması nedeniyle tercih edilmelidir. Oyun seçenekleri ve bonuslarla çeşitlilik sunar.
    Ayrıca casino oyunları, strateji ve şans faktörlerini bir araya getiren oyunlar
    olduğu için farklı becerilere ve oyun tarzlarına uygun seçenekler sunar.

    Gerçek paralı casino oyunları nerede oynanabilir?

    Gerçek paralı casino oyunları, lisanslı online casino sitelerinde oynanabilir.
    Bu sitelere üye olmanız ve hesabınıza para yatırmanız gerekmektedir.

    Gerçek paralı oyunlar, kazanç elde etme şansı sunar ancak
    kaybetme riski de bulunur. Oyunların kurallarını ve stratejilerini öğrenmek önemlidir.

  20. Brucenuard表示:

    SEO продвижение и раскрутка сайтов с гарантией https://seomayker.ru/. Услуги по продвижению сайта в поисковых системах. Видимость вашего сайта в поисковых системах повысится и вы привлечете больше качественных посетителей без необходимости платить за рекламу.

  21. Rnqomh表示:

    order micronase – pill micronase 5mg buy forxiga for sale

  22. замена личинки дверного замка
    https://zamena-lichinok.ru/

  23. ремонт замков в москве
    https://remontzamkovmsk.ru/

  24. ryukzak_naSr表示:

    Що робить рюкзак тактичним
    Міфи та правда
    рюкзаки тактичні рюкзаки тактичні .

  25. ryukzak_lfSr表示:

    Які рекомендації варто враховувати
    Провідники технологій
    купити тактичний рюкзак https://ryukzakivijskovibpjgl.kiev.ua/ .

  26. замена замков в металлической двери с выездом цена москва
    http://www.zamena-zamkovmsk.ru

發佈留言

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