vue筆記

設計模式(MVC/MVP/MVVM)

MVC(Model View Controller):

  1. 數據模型(Model):數據保存,代表數據模型,也可以在Model中定義數據修改和操作的業務邏輯
  2. 視圖(View):代表UI 組件,它負責將數據模型轉化成UI 展現出來。
  3. 控制器(Controller):業務邏輯
  • MVC特點:
    1. 用戶可以向 View 發送指令(DOM 事件),再由 View 直接要求 Model 改變狀態。
    2. 用戶也可以直接向 Controller 發送指令,再由 Controller 發送給 View。
    3. Controller 非常薄,只起到路由的作用,而 View 非常厚,業務邏輯都部署在 View。

MVVM(Model-View-ViewModel )

  1. Model 代表數據模型,也可以在Model中定義數據修改和操作的業務邏輯。
  2. View 代表UI 組件,它負責將數據模型轉化成UI 展現出來。
  3. ViewModel 監聽模型數據的改變和控制視圖行為、處理用戶交互,簡單理解就是一個同步View 和 Model的對象,連接Model和View。
  • MVVM特點
    在MVVM架構下,View 和 Model 之間并沒有直接的聯系,而是通過ViewModel進行交互,Model 和 ViewModel 之間的交互是雙向的, 因此View 數據的變化會同步到Model中,而Model 數據的變化也會立即反應到View 上。
    ViewModel 通過雙向數據綁定把 View 層和 Model 層連接了起來,而View 和 Model 之間的同步工作完全是自動的,無需人為干涉,因此開發者只需關注業務邏輯,不需要手動操作DOM, 不需要關注數據狀態的同步問題,復雜的數據狀態維護完全由 MVVM 來統一管理。

Vue核心原理:

  1. Vue由數據驅動,Vue是一個提供了MVVM風格的雙向數據綁定的Javascript庫,專注于View 層。它讓開發者省去了操作DOM的過程,只需要改變數據即可。
  2. Vue實現數據雙向綁定,采用數據劫持結合發布者-訂閱者模式的方式,通過Object.defineProperty來劫持各個屬性的setter,getter,在數據變動時發布消息給訂閱者,觸發相應監聽回調。
  3. 虛擬DOM,vue會建立虛擬dom樹,當被監測的數據改變會通過Object.defineProperty定義的數據攔截,截取到數據的變化,從而通過發布訂閱者模式,觸發Watcher(觀察者),從而改變虛擬dom的具體數據,從而改變最后渲染的dom樹的值,完成雙向數據綁定
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容