若是你是一名 Vue 開發新手,可能已經聽過不少行話術語,好比單頁面應用程序、異步組件、服務器端渲染等等,或者還據說過與 Vue 有關的一些工具和庫,好比 Vuex、Webpack、Vue CLI 和 Nuxt。前端
那麼究竟什麼是Vue,有什麼做用?react
Vue.js是一套用於構建用戶界面的漸進式框架,主要用於快速的構建前端界面,與其它大型的前端框架不一樣,Vue被設計爲能夠自底向上逐層應用。web
相比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 做爲一個用於構建 Web 用戶界面的 JavaScript 框架,在開始使用 Vue 以前,你必須瞭解 JavaScript 和 Web 開發的基礎知識。
而且還須要掌握一些 Vue.js 生態系統的核心知識,包括 Vue 核心庫、Vue Router 和 Vuex。
從根本上說,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 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開發相關的工具和腳手架,能夠大大的提升開發效率。
要得到加強的 Vue 開發體驗,並利用新的瀏覽器功能,你可使用最新的 JavaScript 標準 ES2015 和 ES2016 或更高版本提供的功能來構建 Vue 應用程序。
不過,若是你選擇使用現代 JavaScript,就須要提供一種支持舊版瀏覽器的方法,不然你的產品可能沒法爲大多數用戶提供服務。
要實現這一目的,您可使用 Babel。它的做用是在應用程序發佈以前將你的現代功能「轉換」(翻譯和編譯)爲標準語法,如將ES6翻譯爲瀏覽器可以識別的ES5。
Webpack 是模塊捆綁器,若是你的代碼跨越了不一樣模塊(例如不一樣的 JavaScript 文件),Webpack 能夠將這些零散的代碼「構建」到瀏覽器可讀的單個文件中。
Webpack 還能夠做爲構建管道,你能夠在構建代碼以前對代碼進行轉換,例如使用 Babel、Sass 或 TypeScript,還可使用一系列插件來優化你的應用程序。
不少開發人員以爲 Webpack 難以掌握,配置起來也很麻煩,但若是沒有它,將沒法使用 Vue 的一些有用的功能(如單文件組件)。
最近發佈的 Vue CLI 3 提供了一種用於在 Vue 項目中抽象和自動配置 Webpack 的解決方案。
這是否意味着你不須要學習 Webpack 了?固然不是,由於你仍然不可避免地須要進行定製或調試 Webpack 配置。
TypeScript 是 JavaScript 語言的超集,本質上向這個語言添加了可選的靜態類型和基於類的面向對象編程。爲咱們提供了類型(如String、Boolean、Number 等),這樣咱們就能夠編寫健壯的代碼,並儘早發現錯誤。
將於 2019 年推出的Vue.js 3版本 ,將徹底使用 TypeScript 編寫。所以學習TypeScript顯得頗有必要。
構建在 Vue 之上的框架可讓你無需從頭開始實現服務器端渲染,還能夠建立本身的組件庫以及定製不少其餘常見的任務。
若是你想要構建一個高性能的 Vue 應用程序,就須要基於組件的路由、服務器端渲染、代碼拆分和其餘功能進行實習。
Nuxt.js 做爲一個基於 Vue.js 的輕量級應用框架,可用來建立服務端渲染 (SSR) 應用,也可充當靜態站點引擎生成靜態站點應用,具備優雅的代碼結構分層和熱加載等特性。
Nuxt.js 經過各類社區插件提供了這些開箱即用的功能,以及更多的功能選項,如 PWA。
谷歌的 Material Design 是一個使用十分普遍的頁面樣式指南,用於構建漂亮的邏輯用戶界面,並被用在谷歌的產品(如 Android 和 Web)當中。
Vuetify 在一系列 Vue 組件中實現了 Material Design。所以,你可使用 Material Design 佈局和樣式快速構建 Vue 應用程序,以及模態、警報、導航欄、分頁等小部件。
Vuetify支持SSR(服務端渲染),SPA(單頁應用程序),PWA(漸進式web應用程序)和標準HTML頁面。
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 應用程序(PWA)就像普通的 Web 應用程序同樣,只是加入了改進的用戶體驗。例如,PWA 可能包括脫機緩存、服務器端渲染、推送通知等。
大多數 PWA 功能能夠經過 Vue CLI 3 插件或使用 Nuxt.js 等框架添加到 Vue 應用程序中,但你仍然須要瞭解一些關鍵技術,包括 Web App Manifest 和 ServiceWorker。
若是你對PWA有興趣,那麼推薦您查看一些PWA的官網介紹。