mvvm与mvc模型

mvvm与mvc模型

  • MVC模型

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

    • M:model 模型层(模型层接受改变状态最终发送给视图层展现)
    • V:view 视图层(传递用户交互的指令给控制层)
    • C:controller 控制层(控制层实现相应的逻辑代码后返回给模型层)
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jr9JcEq5-1645778185059)(./images/mvc.png)]
    • MVC设计模型的一般理解三者都相互联系,视图层和模型层存在直接关系,模型层的数据由视图层来体现出来,如果模型层发生改变,意味着视图层也会发生相应的变化,而三者之间的关系实际也更像,模型层与视图层是通过控制层来进行联系。
    • MVC模式的优缺点:
    • 优点
    1. 高内聚低耦合
    2. 重用性高
    3. 可维护性高
    4. 有利于软件优化
    5. 部署快,生命周期成本低
    • 缺点
    1. 增加系统结构和实现的复杂性
    2. 视图对模型数据的低效率访问,未变化数据重复访问
    3. 不适合小、中型应用程序
    4. 没有明确的定义
    • MVVM设计模式

    MVVM是Model-View-ViewModel的简写。即模型-视图-视图模型。【模型】指的是后端传递的数据。【视图】指的是所看到的页面。【视图模型】mvvm模式的核心,它是连接view和model的桥梁。

    • M:model 模型层(后端传递的数据)
    • V:view 视图层(所看到的页面)
    • VM:ViewMode 视图模型层(连接view和model的桥梁)
      在这里插入图片描述
    • MVVM主要通过模型层的默认数据来在视图层中显示,在通过在视图层中修改数据来改变模型层中的数据,从而实现视图层中的变化。当从模型层转化为视图层时,通过后台数据的转化在视图层中显出,通过数据绑定,当从视图层转化为模型层时,由页面改变后台的数据,通过dom事件监听。两者相互实现,就是数据的双向绑定。
      注意:在MVVM模式中,视图层和模型层不能直接联系,两者通过VM来进行关联,当数据发生改变,VM进行监听,然后通知视图,反之,通知数据做改变。
    • MVVM模式的优缺点:
    • 优点
    1. 解决了MVC中大量的DOM操作
    2. 双向绑定技术,当Model变化时,View-Model会自动更新,View也会自动变化,能很好的做到数据一致性
    3. 由于控制器的功能大都移动到View上处理,大大的对控制器进行了瘦身。不用再为看到庞大的控制器逻辑而发愁了。
    4. 可以对View或ViewController的数据处理部分抽象出来一个函数处理model。这样它们专职页面布局和页面跳转,它们必然更一步的简化。
    • 缺点
    1. 数据绑定使得 Bug 很难被调试。你看到界面异常了,有可能是你 View 的代码有 Bug,也可能是 Model 的代码有问题。数据绑定使得一个位置的 Bug 被快速传递到别的位置,要定位原始出问题的地方就变得不那么容易了。
    2. 一个大的模块中model也会很大,虽然使用方便了也很容易保证了数据的一致性,当时长期持有,不释放内存就造成了花费更多的内存。
    3. 数据双向绑定不利于代码重用。客户端开发最常用的重用是View,但是数据双向绑定技术,让你在一个View都绑定了一个model,不同模块的model都不同。那就不能简单重用View了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

teng28

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值