前沿:了解设计模式对我们而言,具有很大意义,对语言没有限制,它适用于任何语言,是一种变成思想。设计模式最初有四人帮提出,有兴趣的同学可以去了解下,今天给大家主要分析mvc与mvvm设计模式
一.mvc设计模式:
    字面理解,mvc就是model,view,controller。
 
    三者又分别是什么呢?
    model有模型的意思,不过这里他代表的数据模型。就是说整个项目运行中担任了数据供给的部分。
    view是视图的意思,这里代表即前端ui视图,就是界面。
    cotroller是控制器的意思,在mvc中起着关联view与model的作用。
 
    三者如何团结合作完成项目的运行呢?
 
    先来说说前端工程师等级的区别:
    我们说前端程序员的等级可以通过分析设计稿看出。
    较为初级的拿到设计稿。第一眼看到的往往是视图界面,    设计稿上有哪些功能,颜色分类,层级等。
    中级的前端开发工程师拿到设计稿后,第一眼往往会看设计稿有那些功能,轮播图,分页,三级联动等等。
    而高级开发工程师在看到设计稿后,往往会思考,该页面中有哪些模块,那些数据分类。如广告,商品列表等
    
    一个前端项目的完成往往是从建模开始,又牵扯到一个问题,什么是建模?
    建模说白了,就是对ui视图即界面的抽象。抽象这一过程就是将页面中的数据分类并分离出来。其实掌握了 这一点,在开发的过程中,往往在没有后端数据的 情况下,可以精确的mock出准备的数据。
 
    回到三者的团结运行,view视图还原成功后,静态页面就算是完成了,要实现动态,我们就需要从model(数据模型)中拿到我们需要的数据。在这个过程中,view会去controller中查找属性和方法。属性从model中拿到数据后反馈给view,最终完成数据的渲染并展示在用户眼前。
    值得我们注意的是,mvc的流程中 ,controller其实是被动的一个过程,被动接受view发起的请求,然后进行相应的处理。
 
二.mvvm设计模式
    model(数据模型),view(视图),viewmodel(视图模型)
      大家可以看到,里面是没有controller了,但是他将viewmodel代替了controller。在运行过程中起了view和 model的链接桥梁,但是又有一点区别与mvc的是,mvc中被动接受view请求的controller在这里,viewmodel给他做了升级,不再是被动接受,而是不断监听view,当有新的需求时,就去链接model拿去数据,然后返回给页面,很好的将view和model做了分离,使view和viewmodel可以独立完成开发。
   缺点:不断的监听页面,性能消耗很大!
 
三.mvc和mvvm的区别
    1.mvc中controller是被动接受请求,而mvvm中作为控制器这一环节的是主动地。
    2.mvc中view可以直接访问model,因此view中必然包含了业务逻辑,并没有实现view和model的分离,而mvvm主要是通过数据的双向绑定机制,在js中实现业务逻辑,进行view和model的关联,因此mvvm真正意义上实现了view和model的分离。
 
 以上就是总结的有关mvc与mvvm的设计模式,不过都还比较浅层,如果要继续深究,可以关注这几个词汇:脏治检查,数据监听,劫持。好了就总结到这里。
有什么问题记得评论,24小时答复。我们一起 进步!

(一)mvc与mvvm设计模式的更多相关文章

  1. iOS 关于MVC和MVVM设计模式的那些事

    一.概述 在 iOS 开发中,MVC(Model View Controller)是构建iOS App的标准模式,是苹果推荐的一个用来组织代码的权威范式.Apple甚至是这么说的.在MVC下,所有的对 ...

  2. MVC和MVVM设计模式简单理解

    1.mvc设计模式理解 Model: 模型 持有所有的数据状态和业务逻辑; 泛指数据库,链接数据库,建立数据模型 View: 视图 用来展示数据模型在页面上,泛指前端 Controller: 控制器, ...

  3. MVC与MVVM设计模式理解

    MVC设计模式(View和Model之间不能直接通信) MVC是一种架构模式,M表示Model,V表示视图View,C表示控制器Controller: Model负责存储.定义.操作数据.从网络中获取 ...

  4. Android App的设计架构:MVC,MVP,MVVM与架构经验谈

    相关:http://www.cnblogs.com/wytiger/p/5996876.html 和MVC框架模式一样,Model模型处理数据代码不变在Android的App开发中,很多人经常会头疼于 ...

  5. 浅谈 MVVM 设计模式在 Unity3D 中的设计与实施

    初识 MVVM 谈起 MVVM 设计模式,可能第一映像你会想到 WPF/Sliverlight,他们提供了的数据绑定(Data Binding),命令(Command)等功能,这让 MVVM 模式得到 ...

  6. 设计模式笔记之三:Android DataBinding库(MVVM设计模式)

    本博客转自郭霖公众号:http://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650236908&idx=1&sn=9e53 ...

  7. 浅析前端开发中的 MVC/MVP/MVVM 模式

    MVC,MVP和MVVM都是常见的软件架构设计模式(Architectural Pattern),它通过分离关注点来改进代码的组织方式.不同于设计模式(Design Pattern),只是为了解决一类 ...

  8. MVC和MVVM

    MVC和MVVM的qu'bie 1. Mvvm定义MVVM是Model-View-ViewModel的简写.即模型-视图-视图模型.[模型]指的是后端传递的数据.[视图]指的是所看到的页面.[视图模型 ...

  9. 浅谈MVC和MVVM模式

    MVC I’m dating with a model… and a view, and a controller. 众所周知,MVC 是开发客户端最经典的设计模式,iOS 开发也不例外,但是 MVC ...

随机推荐

  1. linux crontab命令 自动下载文件

    #crontab -e#download stock data, Mon-Fri, 9:15 - 11:30, 13:00 - 15:0015,30,40,50 9 * * 1-5 (cd /home ...

  2. datagrid 用法

    http://blog.csdn.net/xhhuang1979/article/details/8331682

  3. 高通平台下安卓opencl小例子

    http://blog.csdn.net/wcj0626/article/details/26272019 先到高通的qdn下载adreno GPU SDK,里面有OpenCL的例子.https:// ...

  4. Python3:读取配置dbconfig.ini(含有中文)显示乱码的解决方法

    Python3:读取配置dbconfig.ini(含有中文)显示乱码的解决方法 一.原因 Python 3 中虽有encoding 参数,但是对于有BOM(如Windows下用记事本指定为utf-8) ...

  5. ASP.NET MVC 4.0 中使用NPOI 2.2.0 按模板生成Excel报表

    使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写.NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/ ...

  6. PHP面向对象程序设计之抽象类和抽象方法

    抽象类: 抽象类不能被实例化.抽象类中只定义(或部分实现)子类需要的方法.子类可以继承它并且通过实现其中的抽象方法,使抽象类具体化. 我们可以用一个abstract关键字来定义一个抽象类,示例如下: ...

  7. 如何理解 Python 中的__init__

    转自https://www.zhihu.com/question/46973549/answer/103805810 定义类的时候,若是添加__init__方法,那么在创建类的实例的时候,实例会自动调 ...

  8. shell编程学习笔记--整数自增

    在Shell脚本中,用于while或for循环中经常要涉及到整数自增的情况,下面罗列下可能的方式 [方式一]declare -i来声明整数变量 root@localhost:~# declare -i ...

  9. idea中如何debug本地maven项目

    方法一:使用maven中的jetty插件调试本地maven项目 1.打断点 2.右击“jetty:run”,选择Debug运行 3.浏览器发送http请求,开始调试 方法二:利用远程调试功能调试本地m ...

  10. Hibernate -- 操作持久化对象

    知识点2: session概述 Session 接口是 Hibernate 向应用程序提供的操纵对数据库的最主要的接口,它提供了基本的保存,更新, 删除和加载Java对象的方法. 知识点3:理解ses ...