欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一、mvc模式和mvvm模式

程序员文章站 2022-07-01 19:27:16
...

学习vue的基本语法

mvc和mvvm的关系图解

一、mvc模式和mvvm模式

mvc:

M - Model :数据保存
V - View : 用户界面
C - Controller : 业务逻辑

MVC ,用户操作> View (负责接受用户的输入操作)>Controller(业务逻辑处理)>Model(数据持久化)>View(将结果通过View反馈给用户)

MVC是最经典的开发模式之一,最早是后台那边来的,后台前端的复杂度也上来了,MVC的开发模式也带进前端了众所周知,MVC是开发客户端最经典的设计模式,iOS 开发也不例外,但是 MVC 有让人无法忽视的严重问题。

在通常的开发中,除了简单的 Model、View 以外的所有部分都被放在了 Controller 里面。Controller负责显示界面、响应用户的操作、网络请求以及与 Model 交互。这就导致了Controller:逻辑复杂,难以维护。和 View 紧耦合,无法测试。

MVC有两个很明显的问题:

1.m层和v层直接打交道,导致这两层耦合度高

2.因为所有逻辑都写在c层,导致c层特别臃肿

为了解决这两个问题,MVC的变种模式出现了MVVM!.

mvvm:

M Model
V View
VM Viewmodel

MVVM是将“数据模型数据双向绑定”的思想作为核心,因此在View和Model之间没有联系,通过ViewModel进行交互,而且Model和ViewModel之间的交互是双喜那个的,因此试图的数据的变化会同事修改数据源,而数据源数据的变化也会立即反应到View上。

mvc和mvvm的区别

MVC和MVVM的区别并不是VM完全取代了C,ViewModel存在目的在于抽离Controller中展示的业务逻辑,而不是替代Controller,其它视图操作业务等还是应该放在Controller中实现。也就是说MVVM实现的是业务逻辑组件的重用。

  • MVC中Controller演变成MVVM中的ViewModel
    -MVVM通过数据来显示视图层而不是节点操作
    -MVVM主要解决了MVC中大量的dom操作使页面渲染性能降低,加载速度变慢,影响用户体验

简述vue双向绑定的原理

vue在创建vm的时候,会将数据配置到实例中,然后通过Object.defineProperty方法,为数据动态的添加getter与setter方法。
当获取数据的时候,会触发对应的getter方法,当设置数据的时候,触发对应的setter方法。
然后当setter方法触发完成的时候,内部会进一步触发watcher,从而数据改变了,视图则更新操作完毕。