发表于: 2020-11-16 23:57:50

1 2168


今天完成的是事情:


什么是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层连接起来,而vie和model之间的同步工作是完全自动的,无需人为干涉,因此开发者只需要关注业务逻辑,不要手动操作dom,不需要关注数据状态的同步问题,复杂的数据状态维护完全由mvvm来统一管理


mvvm和mvc的区别


 mvvm和mvc的区别并不大,都是一种设计思想,主要就是mvc中controller演变成mvvm中的viewmodel,mvvm主要解决了mvc中大量dom操作是页面渲染性能降低,加载速度变慢,影响用户体验


区别:vue数据驱动,通过数据来显示视图层而不是节点操作


vue中的优点

低耦合,view可以独立于model的变化和修改,一个viewmodel可以绑定不同的view中,当view发生改变的时候model可以不变,当model变化的时候view也可以不变


可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。


独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计。


可测试。界面素来是比较难于测试的,而现在测试可以针对ViewModel来写。



vue中双向绑定的原理


vue是通过数据劫持和发布订阅来实现这一功能的


利用es5中的object.defineProperty属性对data选项中的数据进行getter和setter设置


发布订阅是指vue通过自定义事件将data的变化反应到视图上去,vue通过observe观察者对象反应数据的变化,然后通知vue生成新的vdom,进而渲染视图


返回列表 返回列表
评论

    分享到