VueJS與其他框架比較
現在我們來比較一下VueJS和React,Angular,Ember,Knockout和Polymer等其他框架的比較。
1. VueJS與React比較
虛擬DOM
虛擬DOM是DOM樹的虛擬表示。 使用虛擬DOM,創建一個與真實DOM相同的JavaScript對象。 每當需要對DOM進行更改時,都會創建一個新的JavaScript對象並進行更改。 之後,兩個JavaScript對象進行比較,最後的更改在真實的DOM中更新。
VueJS和React都使用虛擬DOM,這使得它更快。
模板與JSX
VueJS分別使用html
,js
和css
。 初學者很容易理解和採用VueJS風格。基於模板的VueJS方法非常簡單。
React使用jsx
方法。ReactJS的一切都是JavaScript。HTML和CSS都是JavaScript的一部分。
安裝工具
React使用create react app
,VueJS使用vue-cli /CDN/npm
。 兩者都非常容易使用,並且項目建立了所有的基本要求。 React需要構建Webpack,而VueJS則不需要。 我們可以從使用cdn庫的jsfiddle
或codepen
中的任何地方開始編碼VueJS。
受歡迎程度
React比VueJS更受歡迎。 React的工作機會不僅僅是VueJS。 React背後有一個很大的名字,也就是Facebook,使它更受歡迎。 因爲React使用JavaScript的核心概念,所以它使用JavaScript的最佳實踐。一個和React一起工作的人對於所有的JavaScript概念都是非常好的。
VueJS是一個發展中的框架。 目前,與React相比,VueJS的就業機會較少。 據調查,許多人正在適應VueJS,這可以使其比React和Angular更受歡迎。 有一個很好的社區正在研究VueJS的不同功能。vue路由器由這個社區維護定期更新。
VueJS採用了Angular和React的優秀部分,並建立了強大的庫。 VueJS比React/Angular快得多,因爲它的輕量級庫。
2. VueJS與Angular比較
相似之處
VueJS與Angular有很多相似之處。 v-if
,v-for
等指令與ngIf
,ngFor
的Angular幾乎相似。它們都有一個用於項目安裝的命令行接口用來構建它。 VueJS使用Vue-cli
和Angular使用angular-cli
。 兩者都提供雙向數據綁定,服務器端渲染等。
複雜程度
Vuejs很容易學習。 如前所述,初學者可以使用VueJS的CDN庫,並開始使用codepen
和jsfiddle
。
對於Angular來說,需要經過一系列的安裝步驟,而初學者也很難開始使用Angular。 它使用TypeScript進行編碼,這對於來自JavaScript核心背景的人來說很困難。 但是,對於有Java和C#背景的用戶來說更容易學習。
性能
決定性能的取決於用戶。 VueJS文件的大小比Angular輕得多。 以下鏈接提供了框架性能的比較:http://stefankrause.net/js-frameworks-benchmark4/webdriver-ts/table.html
受歡迎程度
目前,Angular比VueJS更受歡迎。 很多組織都使用Angular,因此非常受歡迎。 在Angular中經驗豐富的求職者也更多地獲得工作機會。 但是,VueJS正在佔據市場的位置,可以被認爲是Angular和React的一個很好的競爭對手。
依賴
Angular提供了很多內置功能。 我們必須導入所需的模塊並開始使用它,例如[@angular](https://github.com/angular "@angular")/animations
,[@angular](https://github.com/angular "@angular")/form
。
VueJS沒有Angular的所有內置功能,需要依靠第三方庫來處理。
靈活性
VueJS可以很容易地與任何其他大項目合併,沒有任何問題。 Angular不會那麼容易與任何其他現有項目合作。
向後兼容性
我們都知道有AngularJS
,Angular2
和Angular4
。 AngularJS
和Angular2
有很大的不同。 在AngularJS
中開發的項目應用程序由於核心的不同而不能轉換爲Angular2
。
VueJS的最新版本是2.0,並具有向後兼容性。 它提供了很好的文檔,這很容易理解。
TypeScript
Angular使用TypeScript進行編碼。 用戶需要掌握Typescript
的知識才能開始使用Angular。 但是,可以從jsfiddle
或codepen
中的任何位置開始使用VueJS編碼使用cdn庫。 我們可以使用標準的JavaScript,這很容易開始使用。
3. VueJS與Ember比較
相似之處
Ember提供了Ember命令行工具,即用於Ember項目的易於安裝和編譯的ember-cli
。VueJS還有一個命令行工具vue-cli
來啓動和構建項目。
它們都具有諸如路由器,模板和組件等特性,使得它們在UI框架中非常豐富。
性能
與Ember相比,VueJS有更好的表現。 Ember增加了一個微光渲染引擎,目的是提高重渲染性能,這與VueJS和React使用虛擬DOM類似。 但是,與Ember相比,VueJS有更好的表現。
4. VueJS與Knockout比較
Knockout提供了很好的瀏覽器支持。它支持IE的較低版本,而IE8及以下版本不支持VueJS。 Knockout的發展速度已經放緩。近來也沒有太多的人氣。
另一方面,VueJS開始越來越受歡迎,Vue團隊定期更新。
5. VueJS與Knockout比較
Polymer庫是由Google開發的。 它用於許多Google項目,例如Google I/O,Google Earth,Google Play Music等。它提供了與VueJS類似的數據綁定和計算屬性。
Polymer自定義元素定義包括普通的JavaScript/CSS,元素屬性,生命週期回調和JavaScript方法。 相比之下,VueJS允許輕鬆使用JavaScript/html和CSS。
Polymer使用Web組件功能,並且需要瀏覽器的polyfills
,否則不支持這些功能。 VueJS沒有這樣的依賴關係,並且在IE9+的所有瀏覽器中工作正常。