Vue.js是一個用於創建Web交互界面的庫.它讓你通過簡單而靈活的API創建由數據驅動的UI組件.
Vue.js是一款輕量級的、以數據驅動構建web界面的前端JS框架,它在架構設計上采用了MVVM(Model-View-ViewModel)模式,其中ViewModel是Vue.js的核心,它是一個Vue的實例,而這個實例又作用域頁面上的某個HTML元素.其核心在於通過數據驅動界面的更新和展示而非JS中通過操作DOM來改變頁面的顯示.
上圖的DOM Listeners和Data Bindings是數據驅動中實現數據雙向綁定的關鍵,實際的 DOM 封裝和輸出格式都被抽象為了 Directives 和 Filters; 這也是Vue.js事件驅動的原理所在。
對於View而言,ViewModel中的DOM Listeners工具會幫助我們監聽頁面上DOM元素的變化,一旦有變化,Model中的數據也會發生改變;
對於Model而言,當我們操縱Model中的數據時,Data Bindings工具會幫助我們更改View中的DOM元素。
此外,頁面組件化也是Vue.js的核心,它提供了一種抽象,讓我們可以用獨立可服用的小組件來構建大型應用。
所以,我們搭建的任何一個界面你可以把其抽象成為一個組件樹,充分的去復用它。
思考:Vue.js和React、Angularjs、Knockout、AvalonJS的區別在哪?
Knockout:微軟出品,可以說是MVVM的模型領域內的先驅,使用函數偷龍轉鳳,最短編輯長度算法實現DOM的同步,兼容IE6,實現高超,但源碼極其難讀,最近幾年發展緩慢。
Vue:是最近幾年出來的一個開源Javascript框架,語法精簡,實現精致,但對瀏覽器的支持受限,最低只能支持IE9。
AvalonJS:是一個簡單易用迷你的MVVM框架,由大神司徒正美研發。使用簡單,實現明快。
React:React並不屬於MVVM架構,但是它帶來virtual dom的革命性概念,受限於視圖的規模。
Angularjs:Google出品,已經被用於Google的多款產品當中。AngularJS有着諸多特性,最為核心的是:MVC、模塊化、自動化雙向數據綁定、語義化標簽、依賴注入等等。入門容易上手難,大量避不開的概念也是很頭疼的。