zxdfe / FE-Interview

Every step counts
34 stars 1 forks source link

第33题:谈一谈你对MVVM的理解? #34

Open zxdfe opened 2 years ago

hezi98 commented 2 years ago

1.MVVM是vue的使用的一个设计模式,M是model数据层,V是view视图层,VM是vue实例,相当于model层和view层的连接桥梁,是MVC设计模式中的C(controller)演变而来; 2.model层的数据会通过VM自动绑定到VM,然后VM将数据渲染到页面;当视图层(页面)的数据变化时,会通知VM来更新model层的数据;

zxdfe commented 2 years ago

MVVM(Model-View-viewModel)是一种设计模式/思想,分为 Model、View、ViewModel image-20221110001452355

image-20221110002346232

这里model数据,是我们自己定义的,view模板也是我们自己定义的,Model和View并没有直接联系而是通过ViewModel来进行双向的通讯联系的,也就是Vue实例作为视图数据连接层,将我们需要展示的视图和模型数据做了一个连接绑定,它(ViewModel)包括 DOM Listenters 和 Data bindings,

1. DOM Listenters => 当View层中由于用户交互操作而改变的数据会在 Model 中同步。

换种说法:当页面有事件触发时(比如监听Input的输入), viewModel也能够监听到事件,并通知model进行响应

2. Data bindings => 当 Model 中的数据改变时会触发 View 层的视图自动更新

换种说法:当数据变化的时候,viewModel能够监听到这种变化,并及时的通知view做出修改。

数据变化更新视图,视图变化更新数据,这种模式实现了 Model 和 View 的数据自动同步,因此我们只需要 专注于数据的逻辑处理,而不需要自己操作 DOM。

DengZhaoQuan commented 1 year ago
  1. MVVM是vue的设计模式。
  2. MVVM 是 Model-View-ViewModel的缩写, (数据模型-视图-视图模型),也就是把以前的MVC模式中的controller演变成ViewModel
  3. Model层代表数据模型,View代表UI组件(或者说视图),ViewModel是ViewModel层的桥梁, MVVM通过 数据双向绑定 让数据自动地双向同步。也就是说,数据会绑定到viewModel层并自动将数据渲染到页面中,视图变化的时候会通知viewModel更新数据。
YangYi-Mo commented 1 year ago

MVVM 的核心是 ViewModel 层,它就像是一个中转站(value converter),负责转换 Model 中的数据对象来让数据变得更容易管理和使用,该层向上与视图层进行双向数据绑定,向下与 Model 层通过接口请求进行数据交互,起呈上启下作用。