1. 程式人生 > >前端框架選擇VUE的理由

前端框架選擇VUE的理由

*此文為我公司做前端選型時的關於為什麼選擇VUE的一些整理,如有認識錯誤,煩請留言糾正謝謝!

1、在github上截止至7月份的星星數可以看出react領先VUE緊跟其後


2、在 Safari 6.1, OS X 的評測裡,Vue.js 的效能直接排到了第一的位置:


3、Vue.js中mini版本的大小隻有72k(壓縮後為23k),React的大小為132k,angular的大小為144k;

4、公司有人問為什麼最終會選擇VUE扯皮半天最終最重要的一點就是VUE是中國的,中文文件支援比較好以及為題查詢比較好查詢。。。

以上三條就讓我對vue比較心動,下面在來做一下詳細的比較為什麼在jQuery,react、vue、以及angular中選擇了Vue

 vue VS react

渲染效能

二者都是通過虛擬dom減少對真實doom的操作,但是vue實現的權重要輕的多。所以渲染使用者介面的時候,vue的速度會更快一點。
更新效能
在react中,當一個元件的狀態發生變化時,它將會引起整個元件的子樹都進行重新渲染,從這個元件的根部開始。在Vue中,元件的依賴關係在它的渲染期間被自動跟蹤,因此係統準確地知道哪些元件實際上需要重新渲染。這就意味著在更新方面,vue也是快於React

規模方面
Vue 的路由庫和狀態管理庫都是由官方維護支援且與核心庫同步更新的
React 則是選擇把這些問題交給社群維護,因此建立了一個更分散的生態系統。

 vue VS angular


相同點:
都支援指令:內建指令和自定義指令。
都支援過濾器:內建過濾器和自定義過濾器。
都支援雙向資料繫結。
都不支援低端瀏覽器。
優勢:
在 API 與設計兩方面上:Vue.js 都比 Angular 簡單得多,因
Angular 使用雙向繫結,Vue 也支援雙向繫結,不過預設為單向繫結,資料從父元件單向傳給子元件。在大型應用中使用單向繫結讓資料流易於理解。此你可以快速地掌握它的全部特性並投入開發。

在 Vue.js 中指令和元件分得更清晰。指令只封裝 DOM 操作,而元件代表一個自給自足的獨立單元 —— 有自己的檢視和資料邏輯。在 Angular 中兩者有不少相混的地方。
Vue.js 有更好的效能,並且非常非常容易優化,因為它不使用髒檢查。Angular,當 watcher 越來越多時會變得越來越慢,因為作用域內的每一次變化,所有 watcher 都要重新計算。並且,如果一些 watcher 觸發另一個更新,髒檢查迴圈(digest cycle)可能要執行多次。

 vue VS jQuery

jQuery是使用選擇器($)選取DOM物件,對其進行賦值、取值、事件繫結等操作,其實和原生的HTML的區別只在於可以更方便的選取和操作DOM物件,而資料和介面是在一起的。比如需要獲取label標籤的內容:$("lable").val();,它還是依賴DOM元素的值。 
Vue則是通過Vue物件將資料和View完全分離開來了。對資料進行操作不再需要引用相應的DOM物件,可以說資料和View是分離的,他們通過Vue物件這個vm實現相互的繫結。這就是傳說中的MVVM。

舉例說明:計算一個按鈕被點選的次數,並在螢幕上顯示這個數字。

Jquery:
<div id="output"></div> 
<button id="increment">Increment</button>
 var counter = 0; 
$(document).ready(function() 
var $output = $('#output');
$('#increment').click(function() {
                     counter++; 
                    $output.html(counter); 
               });
        }); 

Vue
<div id="app"> 
     <div>{{ counter }}</div>
      <button @:click=“increment”>點選</button>
 </div> 
new Vue({ 
        el: '#app',
        data: { counter: 0 }, 
        methods: { increment() {
               this.counter++; 

} }
 });