MVC(Model-View-Controller)将应用分为模型、视图、控制器三层:Model 管数据和业务逻辑,View 负责展示,Controller 接收输入并协调两者。MVVM(Model-View-ViewModel)则用 ViewModel 取代 Controller,通过数据绑定让 View 与 ViewModel 自动同步,开发者只需操作数据。
两者被广泛采用的原因是把「数据」与「界面」解耦,降低代码耦合度,便于测试与多人协作。MVVM 进一步省去了手动操作 DOM 同步状态的样板代码,Vue、Angular(其双向绑定部分)都采用这一思想。
易错点:MVC 中 View 与 Model 的关系在不同框架实现里并不统一(有的允许直接通信,有的必须经过 Controller),回答时说明「以具体框架为准」更显严谨。追问方向:MVVM 的数据绑定如何实现(脏检查、发布订阅、Proxy),以及 MVVM 在复杂表单场景下的内存开销问题。