参考

理解MVVM在react、vue中的使用
结合vue、react、angular谈谈MVC、MVP、MVVM框架
Vue(MVVM)、React(MVVM)、Angular(MVC)对比
vue中MVVM原理及其实现

渐进式

渐进式,简单翻译一下就是逐渐做加法的一种模式,例如使用vue中的双向绑定的特性,vue中的路由,vue中的vuex等。这些都可以选择性的加上去,而不是必须得做的,必须使用的。这就是渐进式,简单的使用vue的某一些特性,由自己选择。

MVC 框架

框架和设计模式的区别
MVC是一种框架模式。
框架、设计模式这两个概念总容易被混淆,其实它们之间还是有区别的。框架通常是代码重用,而设计模式是设计重用,架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。
框架与设计模式虽然相似,但却有着根本的不同。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。

框架模式有哪些?
MVC、MTV、MVP、CBD、ORM等等;

框架有哪些?
C++语言的QT、MFC、gtk,Java语言的SSH 、SSI,php语言的 smarty(MVC模式),python语言的django(MTV模式)等等

设计模式有哪些?
工厂模式、适配器模式、策略模式等等

简而言之:框架是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。
1:MVC的含义:

M(modal):是应用程序中处理数据逻辑的部分。
V (view) :是应用程序中数据显示的部分。
C(controller):是应用程序中处理用户交互的地方(Controller是MVC中的数据和视图的协调者,也就是在Controller里面把Model的数据赋值给View来显示(或者是View接收用户输入的数据然后由Controller把这些数据传给Model来保存到本地或者上传到服务器))

Vue 是一种MVVM的框架


MVVM
M - Model 数据:它是与应用程序的业务逻辑相关的数据的封装载体
V - View 视图:它专注于界面的显示和渲染
VM - ViewModel 视图-数据:它是View和Model的粘合体,负责View和Model的交互和协作
MVVM重要的是设计思想:

(vue2写法)
1:MVVM模式在react中的对应关系
M(odel):对应组件的方法或生命周期函数中实现的业务逻辑和this.state中保存的本地数据,如果React集成了redux +react-redux,那么组件中的业务逻辑和本地数据可以完全被解耦出来单独存放当做M层,如业务逻辑放在Reducer和Action中。
V(iew)-M(odel):对应组件中的JSX,它实质上是Virtual DOM的语法糖。React负责维护 Virtual DOM以及对其进行diff运算,而React-dom 会把Virtual DOM渲染成浏览器中的真实DOM
View:对应框架在浏览器中基于虚拟DOM生成的真实DOM(并不需要我们自己书写)以及我们书写的CSS
绑定器:对应JSX中的命令以及绑定的数据,如className={ this.props.xxx }、{this.props.xxx}等等

2:MVVM模式在vue中的对应关系

1、Vue

毫无争议的一个MVVM框架,对MVVM理念的贯彻也是最显而易见的。 下一篇讲vue对于MVVM的实现

Model层:接口层,原始数据模型。

View层:视图层,template中的html代码。

ViewModel层:基于一个html元素构建的vue实例。将Model中的原始数据模型,构建成一份View层可以使用的视图模型。这个时候,Model层、View层完全解耦。开发者已经完全不需要顾及View的展示更新了,只需要专注业务逻辑以及ViewModel层与Model的交互逻辑就ok。

2、AngularJs

Model层:接口层,原始数据模型。

View层:html页面。

ViewModel层:基于ng-app构建的应用实例,与vue类似,数据双向绑定机制不同。

3、React

Model层:接口层,原始数据模型。

View层:编译之后的Dom。

ViewModel层:基于jsx语法,以及react构建的VDom,单向数据流。

MVVM一个最显著的特征:双向绑定。

React没有这个。

React是一个单向数据流的库,状态驱动视图。

这么一看,vue、react、angularJS不就都是MVVM框架吗?唯一的区别就是,VM层中的Model与View,vue与angular是数据双向绑定,而react由于是单向数据流,所以需要手动更改状态。

架构模式:MVC/MVP(presenter)/MVVM
栗子

vue笔记1 渐进式、 MVVM 框架相关推荐

  1. Vue.js(渐进式JavaScript框架)

    Vue.js(渐进式JavaScript框架) 渐进式:逐步实现新特性. Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的JavaScript框架.它基于标准HTML.CSS ...

  2. 仿照vue实现简易的MVVM框架(一)

    代码github地址: https://github.com/susantong/myMVVM 主要的方法有: compile 深度遍历前端界面的节点,将其复制进一个addQuene队列中 paser ...

  3. Vue.js 2 渐进式前端框架 的最佳学习方法

    Vue.js作为一个后起的前端框架,借鉴了Angular .React等现代前端框架/库的诸多特点,并且 取得了相当不错的成绩. Vue.js的定位是一个渐进式框架,作者的说法是: 与其他框架的区别就 ...

  4. 仿照vue实现简易的MVVM框架(二)

    实现文本插值与s-for循环模版. 对于文本插值的实现,我采用正则去匹配还原这个dom节点,以插值{{text}}形式为分界,将这个dom节点的文本分割成多个字符串,存储在this.muscha中,再 ...

  5. vue笔记(coderwhy)

    开始 跟着b站 coderwhy 老师所做的笔记,对比了几个感觉很适合Vue初学 链接:https://www.bilibili.com/video/BV15741177Eh?from=search& ...

  6. 狂神Vue笔记,后端必须了解的前端知识

    Vue: Soc: HTML+CSS+JS:视图:给用户看刷新后台的数据 网络通信:axios 页面跳转:vue-router 状态管理:vuex Vue-UI:ICE , Element UI 1. ...

  7. Vue -渐进式JavaScript框架

    介绍 vue 中文网 vue github Vue.js 是一套构建用户界面(UI)的渐进式JavaScript框架 库和框架的区别 我们所说的前端框架与库的区别? Library 库,本质上是一些函 ...

  8. 好程序员web前端分享MVVM框架Vue实现原理

    好程序员web前端分享MVVM框架Vue实现原理,Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js和react.js更加简洁 ...

  9. MVVM框架与VUE实现原理

    1.MVVM是Model-View-ViewModel的简写.即模型-视图-视图模型.[模型]指的是后端传递的数据.[视图]指的是所看到的页面.[视图模型]mvvm模式的核心,它是连接view和mod ...

最新文章

  1. Numpy入门教程:11. 时间日期和时间增量
  2. J2SE核心开发实战(二)——字符串与包装类
  3. java frame清除控件_java – 清除JFrame的组件并添加新组件
  4. /bin/false /sbin/nologin
  5. 【Jvm】jvm -XX 参数 VM 调优参数
  6. clamp.js 的使用---超出省略 (翻译)
  7. mongodb java报授权,MongoDB认证和授权
  8. word 2007为不同页插入不同页眉页脚
  9. (void) (_x == _y)
  10. VC2012 小助手的破解
  11. 高维统计理论 估计量的Minimax误差分析 基础理论
  12. ps 抠图 色彩范围
  13. JavaScript的发展史
  14. html调色板快捷键,在线网页调色板
  15. 10个精选国外免费空间
  16. Matlab学习报告 20-12-08
  17. Unity获取物体下的子物体+只获取子物体
  18. 第15课 模块与包
  19. 更名通知 || 初心未改,只为更好,好嗨游戏来了
  20. 微信小程序项目实例——二维码生成器

热门文章

  1. HTML5期末大作业:宠物之家网站设计——代码质量好宠之家(5页) HTML+CSS+JavaScript web期末作业设计网页
  2. route指令使用详解
  3. Java基础:IO 流中的 flush
  4. python定时替换文件内容
  5. 微信小程序反编译的应对方法
  6. Mysql复习资料整理
  7. 2016年生物3D打印八大重要成果
  8. 基于java web技术的班级同学录网站-计算机毕业设计
  9. 详解SOAP简单对象访问协议
  10. 单片机工程师面试题小计