1. 程式人生 > >vue框架的設計思想--漸進、輕量、資料驅動、元件化、自底向上

vue框架的設計思想--漸進、輕量、資料驅動、元件化、自底向上

vue是一套用於構建使用者介面的漸進式框架

參考:https://blog.csdn.net/tangxiujiang/article/details/79594860

https://blog.csdn.net/weixin_41049850/article/details/79431682

以下是看過很多漸進式框架的概念,把幾個相對全面的進行了總結:

漸進式框架:只做自己該做的事情,不去做很多職責之外的事情,提供很多的操作,但是主張很少的引入。

使用者可以根據自己的實際需求引入框架,在框架之外可以很自主的去做要做的事情,而框架不會強制去要求使用者什麼,漸進式框架也可以很好的去融合到原有系統中,漸進式框架具有低主張,功能集中,易融合等特點

————————————————————————————————————————————

vue的核心思想是資料驅動,元件化

參考:https://blog.csdn.net/tangxiujiang/article/details/79800186

https://blog.csdn.net/tangxiujiang/article/details/79594860

vue是mvvm框架,m是model,含義是一種javaScript物件,資料訪問層

v是view,檢視層,即ui

vm一起代表ViewModel,是vue的一個例項物件,可以理解為是一個操作間,連結檢視和model的操作間,在這個操作間裡,把資料自動轉化為檢視,檢視上使用者的操作自動更新相關的資料。


操作間裡有Observer、Compile、Watcher,通過Observer來監聽自己的model資料變化,通過Compile來解析編譯模板指令,最終利用Watcher搭起Observer和Compile之間的通訊橋樑,達到資料變化 (ViewModel)-》檢視更新(view)

注:vue的核心功能就是實現這個操作間的指令封裝,而配套的檢視則使用的是操作間規定的模板寫法,每個模板可以看做是vue的元件,這也是vue設計的核心思想。

vue的雙向資料繫結原理:

注:雙向繫結建立流程:

new Vue的一個例項物件的a,其中一個屬性a.b,在例項化的過程中,通過Object.definePrototype()方法,會對a.b新增getter,setter,同時vue.js會對模板做編譯,生成一個指令物件(根據模板生成對應的物件,這裡是v-text),每個指令物件關聯一個Watcher,這時會去取a.b的值,進而觸發getter,當去修改a.b的值時,會觸發setter,同時通知watcher,watcher再次去取a.b的值,並和a.b舊值比較,如果更改了,Watcher通知指令去呼叫update()方法,而指令是對dom的封裝,所以就會呼叫DOM的原生方法更檢視。

同時vue還會監聽DOM事件,當執行事件時更新資料。

總結:vue專注於檢視層面,便於與第三方庫或既有專案整合,當與現代化的工具鏈以及各種支援類庫結合使用時,vue也完全能夠為複雜的單頁應用提供驅動