理解MVC,MVP 和 MVVM零基础入门_mvc攻略教程

MVCMVC模式的意思是,可以分成三个部分视图(View):用户界面。控制器(Controller):业务逻辑模型(Model):数据保存各部分之间的通信方式如下。View 传送指令到 ControllerController 完成业务逻辑后,要求 Model 改变状态Model 将新的数据发送到 View,用户得到反馈Backbone1. 用户可以向 Vi

理解MVC,MVP 和 MVVM零基础入门

MVC

MVC模式的意思是,可以分成三个部分

理解MVC,MVP 和 MVVM零基础入门_mvc攻略教程

  • 视图(View):用户界面。
  • 控制器(Controller):业务逻辑
  • 模型(Model):数据保存

各部分之间的通信方式如下。
理解MVC,MVP 和 MVVM零基础入门_mvc攻略教程

  1. View 传送指令到 Controller
  2. Controller 完成业务逻辑后,要求 Model 改变状态
  3. Model 将新的数据发送到 View,用户得到反馈

Backbone

理解MVC,MVP 和 MVVM零基础入门_mvc攻略教程

1. 用户可以向 View 发送指令(DOM 事件),再由 View 直接要求 Model 改变状态。

2. 用户也可以直接向 Controller 发送指令(改变 URL 触发 hashChange 事件),再由 Controller 发送给 View。

3. Controller 非常薄,只起到路由的作用,而 View 非常厚,业务逻辑都部署在 View。所以,Backbone 索性取消了 Controller,只保留一个 Router(路由器) 。

MVP

MVP 模式将 Controller 改名为 Presenter,同时改变了通信方向。
理解MVC,MVP 和 MVVM零基础入门_mvc攻略教程
1. 各部分之间的通信,都是双向的。

2. View 与 Model 不发生联系,都通过 Presenter 传递。

3. View 非常薄,不部署任何业务逻辑,称为”被动视图”(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。

MVVM

MVVM 模式将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。
理解MVC,MVP 和 MVVM零基础入门_mvc攻略教程
唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。

海计划公众号
(0)
上一篇 2020/03/20 06:43
下一篇 2020/03/20 06:43

您可能感兴趣的内容

  • 常用颜色表之中国传统颜色基础指南_颜色零基础入门

    不知道大家觉得如何,舒适的颜色,很多人都会喜欢,但主要还是看实用性。今天给大家分享中国传统颜色有那些?中国传统的颜色之美,美如其名:蔚蓝、竹青、绯红、月白、石青、紫檀、霜色、黛绿、胭脂、藕荷、豆绿、宝蓝、秋香、玄色、牙色、黄栌、靛蓝、明黄、朱砂、石绿。。。。。。颜色名称十六进制红绿蓝色相饱和度亮度蔚蓝#70f3ff112243255185°100.0%71.

    2020/03/26
  • 瓢城Web俱乐部基础入门一个不错的在线视频教程网站,部分教程还在持续更新中。

    瓢城Web俱乐部入门基础知识 官方网址:http://www.ycku.com/ 简介描述:一个不错的在线视频教程网站,部分教程还在持续更新中。

    2020/03/06
  • 表单提交type=submit和type=image的区别指南教程_表单基础入门

    1.提交按钮sumbittype=”image”默认是sumbit,不用再添加onclick事件提交,否则会发生表单被提交两次的情况。2.重置按钮reset在onclick事件中添加重置方法。 3.利

    2020/03/20
  • Js中的offsetWidth、clientWidth、innerWidth及相关属性方法菜鸟指南_属性基础入门

    下面的元素属性和元素方法都通过 elem.属性 或 elem.方法 的方式使用,window属性通过 window.属性 的方式使用,document属性则通过document调用:/******* 元素视图属性* offsetWidth 水平方向 width + 左右padding + 左右border-width* offsetHeigh

    2020/03/23
  • css常用代码基础知识教程_css小白基础

    1.禁止div点击//css属性:pointer-events: none; //或者定义属性,在js中添加:$(“.原类名”).addClass(“新类名”);
    //js://禁用$.fn.disable = function () {$(this).addClass(“disable”);};//启用$.fn.enable = function

    2020/03/29
  • 企业架构师如何选择技术治理模式?小白基础_架构师小白攻略

    当组织规模达到一定量级,就会不可避免的陷入到技术选型困境中:新技术是否值得被采用、如何判断可行性、替换成本有多高、隐藏陷阱有哪些等等。本文将从技术管理的角度出发,介绍ThoughtWorks技术雷达何以成为技术管理者的案头手册。技术雷达脱胎于ThoughtWorks一线实践者的内部讨论,后来陆续受到社区中技术爱好者的关注,并最终发展成每半年发布一次的公开读物

    2020/03/23
  • Js高阶函数(Heigher-order function)使用帮助_函数攻略教程

    概念《javascript设计模式和开发实践》中定义 函数既可作为参数被传递,也可以作为返回值输出 满足以下条件:接受一个或多个函数作为输入输出一个函数高阶函数一般是那些函数型包含多于函数。在函数式编程中,返回另一个函数的高阶函数被称为Curry化的函数。函数作为参数传递将函数作为参数传递,我们就可以抽离以部分容易变化的业务逻辑,这样可以分离业务代码中变与

    2020/03/26
  • React Native 添加 Redux 支持菜鸟攻略_native入门教程

    0x1 前言之前写的项目都是人家编写好的脚手架,里面包含项目所需的环境文件,但由于有些东西用不到打包增加软件体积,所以自己从头搭建个环境。是基于 Native Base + react-navigation + Redux 的 React Native 脚手架,现在项目环境如下:{“name”: “app”,”version”: “0.0.1”,”priva

    2020/03/26
  • php回调函数的概念及实例使用帮助_php使用说明

    php提供了两个内置函数call_user_func()和call_user_func_array()提供对回调函数的支持。
    这两个函数的区别是call_user_func_array是以数组的形式接收回调函数的参数的,
    看它的原型就知道了:mixed call_user_func_array ( callable $callback,array$param

    2020/03/31
  • HTML5全局属性汇总小白教程_html5小白攻略

    局部属性和全局属性 局部属性:有些元素能规定自己的属性,这种属性称为局部属性。比如link元素,它具有的局部属性有href、 rel、 hreflang、 media、 type、 sizes这六个。全局属性:可以用来配置所有元素共有的行为,这种属性称为全局属性,可以用在任何一个元素身上。1、accesskey属性使用accesskey属性可以设定一个或几

    2020/04/06
  • 微信h5 input输入框软键盘关闭后,页面无法回到正常位置菜鸟教程网_微信基础知识

    问题: h5页面有个弹框,里面有input输入框,需要用户输入内容。在ios微信中,当第一次输入内容后,发现页面点击不了,点击一些地方出现错位的情况。解决方案:在ios微信里面打开h5页面,当遇到input输入框调出软键盘时候。用户输入完成失去焦点,键盘收回后,会发现input输入框的位置发现变化的情况。这里需要监听失焦事件,并重新设定高度才能解决这个问题。

    2020/03/24
  • 盘点那些走向世界的中国项目菜鸟知识_开源基础入门

    “开源(Open Source)”,这个在程序员界耳熟能详的词,几乎充斥着我们的整个职业生涯。相信没有一个程序员不知道啥是“开源”,相信没有一个程序员从来没用过“开源”产品。回顾一下,我们所熟知的一些伟大开源项目几乎都出自国外的程序大师或组织。然而,这几年国人也贡献了不少优秀的开源项目与产品,甚至有一些也收到国外同行的认可与赞许。下面我们就在一起盘点下,那些

    2020/03/24
  • 对HTML语义化的一些理解和记录基础指南_语义化小白帮助

    什么是HTML语义化说HTML语义化就要先说说HTML到底负责的什么?下面摘自维基百科:超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。HTML元素是构建网站的基石。HTML允许嵌入图像与对象,并且可以用于创建交互式表单,它被用来结构化信息——例如标题、段落和列表等等,也可用来在一定

    2020/03/23
  • 和程序员约会的优点和缺点使用帮助_约会入门指南

    码农很多,找个程序员做老公是个不错的选择!那么你知道与程序员约会有什么优点与缺点吗?认同的一定要转哟!优点:他们不会骗人;他们也没有时间去拈花惹草。缺点:不过他们也没有什么时间陪你。优点:他们喜欢脱光(strip)、抚摸(touch)、摆弄(finger)、释放(unzip)、骑上去(mount)……缺点:……别想歪了,这些都是Linux命令……优点:他们很

    2020/03/20
  • westore教程视频_微信小程序解决方案

    westore教程视频 官方网址:http://omijs.org GitHub:https://github.com/Tencent/westore 简介描述:微信小程序解决方案…

    2020/03/11
  • 使用<label>标签修改input[type=checkbox]的样式菜鸟教程网_样式菜鸟教程下载

    因为

    2020/03/24