一、什么是 MVVM ?
MVVM 是 Model-View-ViewModel 的缩写。MVVM 是一种设计思想。Model 层代表
数据模型,也可以在 Model 中定义数据修改和操作的业务逻辑;View 代表 UI
组件,它负责将数据模型转化成 UI 展现出来,ViewModel 是一个同步 View 和
Model 的对象。
在 MVVM 架构下,View 和 Model 之间并没有直接的联系,而是通过 ViewModel
进行交互,Model 和 ViewModel 之间的交互是双向的, 因此 View 数据的变
化会同步到 Model 中,而 Model 数据的变化也会立即反应到 View 上。
ViewModel 通过双向数据绑定把 View 层和 Model 层连接起来,而 View 和
Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业
务逻辑,不需要手动操作 DOM, 不需要关注数据状态的同步问题,复杂的数据
状态维护完全由 MVVM 来统一管理。
二、mvvm 与 mvc 区别?它和其它框架(jquery)的区别是什么?哪些场景适
用?
mvc 和 mvvm 其实区别并不大,都是一种设计思想。主要就是 mvc 中 Controller
演变成 mvvm 中的 viewModel。mvvm 主要解决了 mvc 中大量的 DOM 操作使页面
渲染性能降低,加载速度变慢,影响用户体验。
区别:vue 数据驱动,通过数据来显示视图层而不是节点操作。
场景:数据操作比较多、频繁的场景,更加便捷。
三、vue 优点?
低耦合。视图(View)可以独立于 Model 变化和修改,一个 ViewModel 可以绑
定到不同的"View"上,当 View 变化的时候 Model 可以不变,当 Model 变化的时
候 View 也可以不变。
可重用性。可以把一些视图逻辑放在一个 ViewModel 里面,让很多 view 重用这
段视图逻辑。
独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人
员可以专注于页面设计。
可测试。界面素来是比较难于测试的,而现在测试可以针对 ViewModel 来写。
四、 组件之间的传值?
父组件通过标签上:data=data 方式定义传值
子组件通过 props 方法接受数据