一、mvc模式和mvvm模式

    科技2022-07-10  143

    学习vue的基本语法

    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,从而数据改变了,视图则更新操作完毕。

    Processed: 0.032, SQL: 8