MVC
Model(模型):表示应用程序核心(如数据库)
View(视图):显示效果(HTML页面)通常视图是依据模型数据创建的。
Controller(控制器):处理输入(业务逻辑)通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
用户操作view, 用户操作View去改变Controller,Controller改变Model, Model再直接根据业务代码显示在View上。
优点:极大程度降低了页面与逻辑的耦合性
缺点:mvc的界面和逻辑关联紧密,数据直接从数据库读取
MVVM
Model(模型):表示应用程序核心(如数据库)
View(视图):显示效果(HTML页面)通常视图是依据模型数据创建的。
ViewModel(视图模型):连接view和model的桥梁模型
数据的双向绑定:
①Model→View:数据绑定。ViewModel通常要实现一个observer观察者,当数据发生变化,ViewModel能够监听到数据的这种变化,然后通知到对应的视图做自动更新
②View→Model:DOM 事件监听。当用户操作视图,ViewModel也能监听到视图的变化,然后通知数据做改动。
优点:双向绑定,真正做到了View与Medel的分离。通过数据来驱动视图,开发者只需要关心数据变化,DOM操作被封装了。(也是与MVC的区别)
缺点:ViewModel会增多