VueJS是一個開源的漸進式JavaScript框架,用於開發交互式web界面。它是用來簡化web開發的著名框架之一。VueJS聚焦於視圖層。它可以輕鬆地集成到大型項目中進行前端開發,而無需任何問題。
VueJS的安裝很容易開始。任何開發人員都可以很容易地理解和構建交互式web界面。VueJS由Evan You創建,Evan You是谷歌的前僱員。VueJS的第一個版本於2014年2月發布。它最近在GitHub上已達到64828顆星,非常受歡迎。
Features
以下是VueJS的可用功能。
Virtual DOM
VueJS使用虛擬DOM,其他框架(如React、Ember等)也使用虛擬DOM。不會對DOM進行更改,而是以JavaScript數據結構的形式創建DOM的副本。無論何時進行任何更改,都會對JavaScript數據結構進行更改,並將後者與原始數據結構進行比較。最後的更改將更新爲真正的DOM,用戶將看到它的更改。這在優化方面是很好的,它的成本更低,並且可以以更快的速度進行更改。
Data Binding
數據綁定功能有助於操作HTML屬性或將值分配給HTML屬性、更改樣式、藉助VueJS提供的名爲v-bind的綁定指令分配類。
Components
組件是VueJS的重要特性之一,它有助於創建可在HTML中重用的自定義元素。
Event Handling
v-on是添加到DOM元素的屬性,用於監聽VueJS中的事件。
Animation/Transition
VueJS提供了各種方法,在HTML元素被添加/更新或從DOM中刪除時,將轉換應用於這些元素。VueJS有一個內置的轉換組件,需要將其包裝在元素周圍以獲得轉換效果。我們可以輕鬆地添加第三方動畫庫,也可以爲界面添加更多的交互性。
Computed Properties
這是VueJS的一個重要特性。它有助於監聽對UI元素所做的更改並執行必要的計算。這不需要額外的編碼。
Templates
VueJS提供基於HTML的模板,用於將DOM與Vue實例數據綁定。Vue將模板編譯爲虛擬DOM呈現函數。我們可以使用呈現函數的模板,爲此我們必須用呈現函數替換模板。
Directives
VueJS具有內置指令,如v-if、v-else、v-show、v-on、v-bind和v-model,這些指令用於在前端執行各種操作。
Watchers
監視程序應用於更改的數據。例如,表單輸入元素。在這裡,我們不需要添加任何額外的事件。Watcher負責處理任何數據更改,使代碼簡單快速。
Routing
頁面之間的導航是在vue路由器的幫助下執行的。
Lightweight
VueJS腳本非常輕量級,性能也非常快。
Vue-CLI
可以使用vue cli命令行界面在命令行安裝VueJS。它有助於使用vue cli輕鬆構建和編譯項目。
Comparison with Other Frameworks
現在讓我們將VueJS與其他框架(如React、Angular、Ember、Knockout和Polymer)進行比較。
VueJS v/s React
虛擬DOM
虛擬DOM是DOM樹的虛擬表示。使用虛擬DOM創建一個JavaScript對象,該對象與實際DOM相同。每當需要對DOM進行更改時,都會創建一個新的JavaScript對象並進行更改。稍後,對這兩個JavaScript對象進行比較,並在真正的DOM中更新最後的更改。
VueJS和React都使用虛擬DOM,這使其速度更快。
模板v/s JSX
VueJS分別使用html、js和css。初學者很容易理解和採用VueJS風格。基於模板的VueJS方法非常簡單。
React使用jsx方法。一切都是ReactJS的JavaScript。HTML和CSS都是JavaScript的一部分。
安裝工具
React使用創建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是一個開發框架。目前,與反應相比,VueJS的工作機會較少。根據一項調查,許多人正在適應VueJS,這可以使它在反應和角度上更受歡迎。有一個很好的社區正在研究VueJS的不同特性。vue路由器由此社區維護,並定期更新。
VueJS已經從角度和反應上獲取了好的部分,並構建了一個強大的庫。與React/Angular相比,VueJS要快得多,因爲它的輕量級庫。
VueJS v/s Angular
相似性
VueJS與Angular有很多相似之處。指令如v-if,v-for與ngIf,ngFor的角度幾乎相似。它們都有一個用於項目安裝和構建的命令行界面。VueJS使用Vue cli,Angular使用Angular cli。兩者都提供雙向數據綁定、伺服器端呈現等功能。
複雜性
Vuejs非常容易學習和開始。如前所述,初學者可以使用VueJS的CDN庫,並開始使用codepen和jsfiddle。
對於Angular,我們需要經歷一系列的安裝步驟,對於初學者來說,開始使用Angular並不困難。它使用TypeScript進行編碼,這對於來自核心JavaScript背景的人來說是困難的。不過,對於Java和C#背景的用戶來說,學習起來更容易。
性能
要決定性能,取決於用戶。VueJS文件大小比角度文件小得多。框架性能的比較見以下連結http://stefankrause.net/js-frameworks-benchmark4/webdriver ts/table.html
受歡迎程度
目前,Angular比VueJS更受歡迎。很多組織使用角度,使它非常受歡迎。求職機會也更多的是有角度經驗的候選人。然而,VueJS在市場上占有一席之地,可以被認爲是Angular和React的良好競爭對手。
依賴關係
Angular提供了很多內置功能。我們必須導入所需的模塊並開始使用,例如,@angular/animations,@angular/form。
VueJS並沒有像Angular那樣的所有內置特性,需要依賴第三方庫來處理它。
靈活性
VueJS可以輕鬆地與任何其他大型項目合併,而不會出現任何問題。角度將不是那麼容易開始工作與任何其他現有的項目。
向後兼容性
我們有AngularJS,Angular2,現在有Angular4。AngularJS和Angular2有很大的區別。由於核心差異,在AngularJS中開發的項目應用程式無法轉換爲Angular2。
VueJS的最新版本是2.0,它具有良好的向後兼容性。它提供了很好的文檔,很容易理解。
類型腳本
Angular使用TypeScript進行編碼。用戶需要了解Typescript才能開始使用Angular。但是,我們可以從使用cdn庫在jsfiddle或codepen中的任何地方進行VueJS編碼開始。我們可以使用標準的JavaScript,這很容易開始。
VueJS v/s Ember
相似性
Ember提供了Ember命令行工具,即Ember cli,以便於Ember項目的安裝和編譯。
VueJS還有一個命令行工具vue cli來啓動和構建項目。
它們都具有路由器、模板和組件等特性,這使得它們作爲UI框架非常豐富。
性能
與Ember相比,VueJS具有更好的性能。Ember添加了一個glimmer渲染引擎,目的是提高重新渲染性能,這與VueJS和React使用虛擬DOM是一個類似的概念。但是,與Ember相比,VueJS有更好的性能。
VueJS v/s Knockout
Knockout提供了良好的瀏覽器支持。它在較低版本的IE上受支持,而在IE8及以下版本上不支持VueJS。隨著時間的推移,淘汰賽的發展已經放緩。在最近一段時間裡,同樣的東西並不受歡迎。
另一方面,Vue團隊提供定期更新,VueJS已經開始流行起來。
VueJS v/s Polymer
聚合物庫是由谷歌開發的。它被用於許多Google項目,如Google I/O、Google Earth、Google Play Music等,它提供類似於VueJS的數據綁定和計算屬性。
聚合自定義元素定義包括純JavaScript/CSS、元素屬性、生命周期回調和JavaScript方法。相比之下,VueJS允許輕鬆使用JavaScript/html和CSS。
Polymer使用web組件特性,瀏覽器需要polyfill,而polyfill不支持這些特性。VueJS沒有這樣的依賴關係,在IE9+的所有瀏覽器中都可以正常工作。