2.1 Vue.js概述
Vue (讀音 /vju?/,類似于 view) 是一套用于構建用戶界面的漸進式框架。
Vue.js官網(wǎng)的截圖(2019年7月)
易用
會HTML、CSS、JavaScript就可以構建應用。?
靈活
可以在一個庫和一套完整框架之間自如伸縮。
高效
20kB運行大小,超快虛擬 DOM,最省心的優(yōu)化
2.2與React對比
React官網(wǎng)的截圖(2019年7月)
性能
React 和 Vue 都是非??斓摹?/p>
優(yōu)化
在 Vue 應用中,組件的依賴是在渲染過程中自動追蹤的,所以系統(tǒng)能精確知曉哪個組件確實需要被重渲染。Vue 的這個特點使得開發(fā)者不再需要考慮此類優(yōu)化,從而能夠更好地專注于應用本身。
HTML & CSS
在 React 中,一切都是 JavaScript。不僅僅是 HTML 可以用 JSX 來表達,現(xiàn)在的潮流也越來越多地將 CSS 也納入到 JavaScript 中來處理。Vue 的整體思想是擁抱經(jīng)典的 Web 技術,并在其上進行擴展。
向上擴展
Vue 的路由庫和狀態(tài)管理庫都是由官方維護支持且與核心庫同步更新的。React 則是選擇把這些問題交給社區(qū)維護,因此創(chuàng)建了一個更分散的生態(tài)系統(tǒng)。但相對的,React 的生態(tài)系統(tǒng)相比 Vue 更加繁榮。
最后,Vue 提供了 CLI 腳手架,能讓你通過交互式的腳手架引導非常容易地構建項目。你甚至可以使用它快速開發(fā)組件的原型。React 在這方面也提供了 create-react-app。
向下擴展
React 學習曲線陡峭,在你開始學 React 前,你需要知道 JSX 和 ES2015,因為許多示例用的是這些語法。
就像 Vue 向上擴展好比 React 一樣,Vue 向下擴展后就類似于 jQuery。
原生渲染
React Native 能使你用相同的組件模型編寫有本地渲染能力的 APP (iOS 和 Android)。能同時跨多平臺開發(fā),對開發(fā)者是非常棒的。
相應地,Vue 和 Weex 合作,Weex 允許你使用 Vue 語法開發(fā)不僅僅可以運行在瀏覽器端,還能被用于開發(fā) iOS 和 Android 上的原生應用的組件。
2.3與Angular對比
Angular官網(wǎng)的截圖(2019年7月)
TypeScript
Angular必須用 TypeScript 來開發(fā)。
在中小型規(guī)模的項目中,用 Vue 會是更好的選擇。
性能
這兩個框架都很快。
體積
在體積方面,一個包含了 Vuex + Vue Router 的 Vue 項目 (gzip 之后 30kB) 相比使用了這些優(yōu)化的 angular-cli 生成的默認項目尺寸 (~65KB) 還是要小得多。
靈活性
Vue 相比于 Angular 更加靈活。
學習曲線
要學習 Vue,你只需要有良好的 HTML 和 JavaScript 基礎。
Angular 的學習曲線是非常陡峭的——作為一個框架,它的 API 面積比起 Vue 要大得多,你也因此需要理解更多的概念才能開始有效率地工作。當然,Angular 本身的復雜度是因為它的設計目標就是只針對大型的復雜應用;但不可否認的是,這也使得它對于經(jīng)驗不甚豐富的開發(fā)者相當?shù)牟挥押谩?/p>