Vue學習路線圖

xiangzhihong發表於2018-12-11

Vue 概述

如果你是一名 Vue 開發新手,可能已經聽過很多行話術語,比如單頁面應用程式、非同步元件、伺服器端渲染等等,或者還聽說過與 Vue 有關的一些工具和庫,比如 Vuex、Webpack、Vue CLI 和 Nuxt。

那麼究竟什麼是Vue,有什麼作用?

Vue.js是一套用於構建使用者介面的漸進式框架,主要用於快速的構建前端介面,與其它大型的前端框架不同,Vue被設計為可以自底向上逐層應用。

相比Angular.js來說,Vue的核心庫只關注檢視層,不僅易於上手,還便於與第三方庫或既有專案整合,是初創專案的前端首選框架。另一方面,當與現代化的工具鏈以及各種支援類庫結合使用時,Vue也完全能夠為複雜的單頁應用提供驅動。

單獨來說,Vue.js是一個用於構建使用者介面的前端庫,本身就具有響應式程式設計和元件化的諸多優點。所謂響應式程式設計,即是一種面向資料流和變化傳播的程式設計正規化,可以在程式語言中很方便地表達靜態或動態的資料流,而相關的計算模型會自動將變化的值通過資料流進行傳播。

響應式程式設計在前端開發中得到了大量的應用,在大多數前端MVX框架都可以看到它的影子。相比較於Angular.js和React.js而言,Vue.js並沒有引入太多的新概念,只是對已有的概念進行了精簡。並且,Vue.js很好的借鑑了React.js的元件化思想,使應用開發起來更加容易,真正實現了模組化開發的目的。

相比於Angular.js和React.js而言,Vue.js一直以輕量級、易上手而被人稱道。MVVM的開發模式也使前端從傳統的DOM操作中釋放出來,開發者不需要再把時間浪費在檢視和資料的維護上,只需要關注data的變化即可。並且,Vue的渲染層基於輕量級的virtual-DOM實現,在大多數的場景下初始化速度和記憶體消耗都提高2-4倍。同時,越來越多的移動客戶端也開始支援使用Vue.js來進行開發,可以堅信使用Vue.js打造三端一致的Native應用將變成可能。

作為一個新興的前端框架,Vue.js大量借鑑和參考了Angular.js和React.js等優秀的前端框架。而在版本支援上,Vue.js拋棄了對IE8的支援,對移動端的支援也有一定的要求,也即是說使用Vue.js進行移動跨平臺開發時需要Android 4.2+和iOS 7+支援。

如果讀者所在的專案是一個前後端分離的專案,亦或者是一個創業專案,想使用Vue.js打造三端一致的Native體驗,那麼Vue.js將是一個不錯的選擇。

Vue 線路圖

俗話說,一口氣吃不成胖子。對於一個新手,又如何學習Vue呢?還需要如何進階呢?又需要掌握哪些高階知識?為了解答這些疑問,下面看一張Vue的技能圖。

在這裡插入圖片描述

JavaScript 與Web基礎

Vue 作為一個用於構建 Web 使用者介面的 JavaScript 框架,在開始使用 Vue 之前,你必須瞭解 JavaScript 和 Web 開發的基礎知識。

並且還需要掌握一些 Vue.js 生態系統的核心知識,包括 Vue 核心庫、Vue Router 和 Vuex。

Vue 核心功能

從根本上說,Vue 就是一個用於同步網頁的JavaScript技術框架。實現這一目標的關鍵特性是反應式(reactive)資料,以及指令和插值等模板功能。

要構建一個 Vue 應用程式,你還需要知道如何在網頁中安裝 Vue,並瞭解 Vue 例項的生命週期等知識。

元件

其次,Vue 元件是獨立的可重用 UI 元素。因此,你需要了解如何宣告元件,以及如何通過 prop 和 event 在它們之間發生互動。

瞭解如何組合元件也很重要,因為這對使用 Vue 構建健壯、可伸縮的應用程式來說至關重要。

單頁面應用程式

單頁面應用程式(SPA)架構通過單個網頁實現傳統多頁面網站一樣的功能,而且不會在每次使用者觸發導航時重新載入和重建頁面。

在將“頁面”構建為 Vue 元件之後,就可以使用 Vue Router 將每個“頁面”對映到一個唯一的路徑,Vue Router 是一個用於構建 SPA 的工具,由 Vue 團隊維護。

狀態管理

隨著應用程式變得越來越大,專案變得越來越複雜,SPA 頁面中會有很多元件,管理全域性狀態變得異常困難,而且隨著 prop 和 event 監聽器的增加,元件變得越來越臃腫。

這時候,一種稱為Flux的特殊模式就出現了,它可以將資料儲存在可預測且穩定的中央儲存中。由 Vue 團隊維護的 Vuex 庫可以幫助你在 Vue.js 應用程式中實現 Flux。

實戰中的Vue

腳手架

如果你經常構建 Vue 應用程式,你會發現幾乎每個專案都需要提供配置、設定和開發者工具。

Vue 團隊維護了一個叫作 Vue CLI 的工具,讓你可以在幾分鐘內啟動一個強大的 Vue 開發環境。

全棧應用程式

在實際開發中,真實的 Vue 應用程式通常是由資料來驅動使用者介面渲染的。資料通常來自使用 Node、Laravel、Rails、Django 或其他伺服器框架開發的 API。

這些資料可能是由傳統的 REST API 或 GraphQL 提供的資料,也可能是通過 Web 套接字提供的實時資料。

所以,你還需要了解將 Vue 整合到完整技術棧中常用設計模式,以及確保 Vue 應用程式使用者資料的安全性。

測試

如果你想開發出可維護且穩定的 Vue 應用程式,你還需要對它們進行測試(如單元測試、快照測試、黑盒測試等)。

在 Vue 應用程式中,可以通過單元測試來確保你的元件能夠為給定輸入(即 prop 或使用者輸入)提供相同的輸出(即重新渲染的 HTML 或發出的事件)。

Vue 團隊維護了一個叫作 Vue Test Utils 的工具,用於測試單獨的 Vue 元件。

優化

當你將應用程式部署到遠端伺服器並且使用者通過慢連線訪問它時,它與你在開發環境中測試的速度和效率是不一樣的。

為了優化 Vue 應用程式,我們可以採用各種技術,包括伺服器端渲染,也就是在伺服器端執行 Vue 應用程式,然後輸出 HTML 頁面並傳給使用者。其他優化手段還包括使用非同步元件和渲染函式。

開發工具

俗話說,磨刀不誤砍柴工,寫程式碼也一樣,掌握Vue開發相關的工具和腳手架,可以大大的提高開發效率。

JavaScript 和 Babel

要獲得增強的 Vue 開發體驗,並利用新的瀏覽器功能,你可以使用最新的 JavaScript 標準 ES2015 和 ES2016 或更高版本提供的功能來構建 Vue 應用程式。

不過,如果你選擇使用現代 JavaScript,就需要提供一種支援舊版瀏覽器的方法,否則你的產品可能無法為大多數使用者提供服務。

要實現這一目的,您可以使用 Babel。它的作用是在應用程式釋出之前將你的現代功能“轉換”(翻譯和編譯)為標準語法,如將ES6翻譯為瀏覽器能夠識別的ES5。

WebPack

Webpack 是模組捆綁器,如果你的程式碼跨越了不同模組(例如不同的 JavaScript 檔案),Webpack 可以將這些零散的程式碼“構建”到瀏覽器可讀的單個檔案中。

Webpack 還可以作為構建管道,你可以在構建程式碼之前對程式碼進行轉換,例如使用 Babel、Sass 或 TypeScript,還可以使用一系列外掛來優化你的應用程式。

很多開發人員覺得 Webpack 難以掌握,配置起來也很麻煩,但如果沒有它,將無法使用 Vue 的一些有用的功能(如單檔案元件)。

最近釋出的 Vue CLI 3 提供了一種用於在 Vue 專案中抽象和自動配置 Webpack 的解決方案。

這是否意味著你不需要學習 Webpack 了?當然不是,因為你仍然不可避免地需要進行定製或除錯 Webpack 配置。

TypeScript

TypeScript 是 JavaScript 語言的超集,本質上向這個語言新增了可選的靜態型別和基於類的物件導向程式設計。為我們提供了型別(如String、Boolean、Number 等),這樣我們就可以編寫健壯的程式碼,並儘早發現錯誤。

將於 2019 年推出的Vue.js 3版本 ,將完全使用 TypeScript 編寫。因此學習TypeScript顯得很有必要。

Vue 的框架

構建在 Vue 之上的框架可以讓你無需從頭開始實現伺服器端渲染,還可以建立自己的元件庫以及定製很多其他常見的任務。

Nuxt.js

如果你想要構建一個高效能的 Vue 應用程式,就需要基於元件的路由、伺服器端渲染、程式碼拆分和其他功能進行實習。

Nuxt.js 作為一個基於 Vue.js 的輕量級應用框架,可用來建立服務端渲染 (SSR) 應用,也可充當靜態站點引擎生成靜態站點應用,具有優雅的程式碼結構分層和熱載入等特性。

Nuxt.js 通過各種社群外掛提供了這些開箱即用的功能,以及更多的功能選項,如 PWA。

Vuetify

谷歌的 Material Design 是一個使用十分廣泛的頁面樣式指南,用於構建漂亮的邏輯使用者介面,並被用在谷歌的產品(如 Android 和 Web)當中。

Vuetify 在一系列 Vue 元件中實現了 Material Design。因此,你可以使用 Material Design 佈局和樣式快速構建 Vue 應用程式,以及模態、警報、導航欄、分頁等小部件。

Vuetify支援SSR(服務端渲染),SPA(單頁應用程式),PWA(漸進式web應用程式)和標準HTML頁面。

NativeScript-Vue

Vue.js 是一個用於構建 Web 使用者介面的庫。如果你想將它用於原生移動介面,可以使用 NativeScript-Vue 框架。

NativeScript 是一個用於在 iOS 和 Android 上使用原生使用者介面元件構建應用程式的系統,而 NativeScript-Vue 是一個基於 NativeScript 的框架,提供了 Vue 的語法和元件的使用方式。

其他

外掛開發

如果要在專案中重用 Vue 功能或為 Vue 生態系統做貢獻,可以將功能作為 Vue 外掛來開發。

動畫

如果你需要使用動畫,那麼你需要了解一下 Vue 的過渡系統,它也是 Vue 核心的一部分。你可以通過在向 DOM 新增元素或從 DOM 中刪除元素時應用動畫。

你需要建立 CSS 類來定義所需的動畫效果,無論是淡入淡出、更改顏色還是你喜歡的其他方式。當向 DOM 中新增元素或從 DOM 中刪除元素時,Vue 會檢測到這些變更,並在過渡期間新增或刪除相應的 CSS 類。

漸進式 Web 應用程式

漸進式 Web 應用程式(PWA)就像普通的 Web 應用程式一樣,只是加入了改進的使用者體驗。例如,PWA 可能包括離線快取、伺服器端渲染、推送通知等。

大多數 PWA 功能可以通過 Vue CLI 3 外掛或使用 Nuxt.js 等框架新增到 Vue 應用程式中,但你仍然需要了解一些關鍵技術,包括 Web App Manifest 和 ServiceWorker。

如果你對PWA有興趣,那麼推薦您檢視一些PWA的官網介紹

相關文章