動態

詳情 返回 返回

MVVM與MVC的區別 - 動態 詳情

MVC和MVVM都是一種設計模式。

MVC

MVC
Model:模型,用於存儲業務數據;
View:視圖,界面的展示;
Controller:控制器,處理視圖與數據的交互。

MVC之間的關係:

  • View展示數據依賴Model,View可以直接訪問Model;
  • View更新數據通過Controller,Controller更新Model。

MVVM

MVVM
Model:模型,用於存儲業務數據;
View:視圖,界面的展示;
ViewModel:視圖模型,視圖與模型之間的橋樑,處理視圖與數據之間的交互。

MVVM之間的關係:

  • View不依賴Model,通過viewModel綁定數據;
  • View更新數據通過ViewModel更新Model,Model更新通過ViewModel更新View,ViewModel雙向綁定。

MVVM與MVC的區別

  • MVVM與MVC最大的不同就是ViewModel與Controller的區別。
    Controller更加強調控制器是作為View更新model的中介,View展示的數據和與用户交互是通過DOM操作,只能實現單向的數據綁定。
    ViewModel更加強調Model的數據與View的UI綁定。這種綁定包括數據綁定、命令綁定、事件綁定。

      數據綁定
      View自動更新UI以反映Model的變化
      命令綁定
      在ViewModel中定義很多命令,當用户在View中觸發了命令,ViewModel的命令會自動執行
      事件綁定
      ViewModel可以定義一系列的事件,並將這些事件與View中的控件進行綁定。當用户觸發相應的控件時,ViewModel中的事件將被觸發。

    並且ViewModel是響應式數據綁定,並不是直接對DOM操作;
    ViewModel實現了雙向數據綁定,也就是當用户在View上更新數據時,Model的數據也會自動更新;當Model的數據更新時,View展示的數據也會自動更新。

總結下來,主要的區別就是:
單向與雙向的通信、是否直接對DOM操作、View是否依賴Model。

參考學習了其他博客:
https://zhuanlan.zhihu.com/p/670756000

user avatar yujiaao 頭像 youfujidebangbangtang 頭像 323duqpq 頭像
點贊 3 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.