美文网首页
关于 Vue、React 与 MVVM

关于 Vue、React 与 MVVM

作者: 老邵 | 来源:发表于2020-03-27 17:22 被阅读0次

首先要明确 MVVM 是什么,它是 MVC 的衍生架构。无论是 MVC 还是 MVVM 都不是只针对于前端或后端开发的,它们是针对于所有软件开发的架构。

MVC

在 MVC 中,Mode 是数据,View 是用户看到的视图,Controller 是处理逻辑。用户触发 Controller(比如后端被http驱动,有一个明显的Control入口,其他场景中也有可能在 View 触发), Controller 运行逻辑改变 Model,Model 用变动后的数据更新 View 。

MVVM

mvvm.png

MVVM 也被称为 model-view-binder。MVVM 中,VM 是 ViewModel。View 与 ViewModel 之间采用数据绑定,绑定是双向的,避免了开发人员写一些同步 ViewModel 和 View 的重复逻辑。通过数据绑定,View 发生变化会自动反映到 ViewModel,ViewModel 产生的变化也会自动更新 View。

ViewModel 创建了一个视图的抽象,将视图中的状态和行为抽离出来。

在 MVVM 的实现中,还引入了隐式的一个 Binder 层,而声明式的数据和命令的绑定在 MVVM 模式中就是通过它完成的。

Binder.png

Vue、React 与 MVVM

Vue 是一个提供了 MVVM 风格的双向数据绑定的框架。它的核心是 MVVM 中的 VM,也就是 ViewModel。 ViewModel负责连接 View 和 Model,保证视图和数据的一致性。

在 Vue 中,Model 和 VM,VM 和 和 View 之间都是双向数据绑定,实现方式是数据劫持。

但是在 Vue 中,哪一部分是 VM,哪一部分是 M,其实不太好区分。如果 Vue 的一个实例是 VM,那么 model 是什么?如果 data 是 model,先经过实例中的逻辑改变 data,然后 view 产生变化又不符合 MVVM。或者说 VM 是 Vue 框架实现数据响应的源码,实例中的逻辑是 model 层的逻辑,用于改变 model 。所以,个人认为 Vue 只能说是有 MVVM 风格的框架,不能说是一个 MVVM 框架。

react,单向数据流。本身只是 一个函数 ui = render (data) 官方就这么简单一个公式。加上状态管理等,可以做 MVVM 风格的开发。

不管是 MVC 还是 MVVM ,具体到实际框架,组成成分之间都不会泾渭分明,几种组成成分之间常常有难以划分的模糊地带。如果忽略划分细节从整体来看,Vue 参考但没有完全遵循 MVVM,React 只是一个 View 层。

相关文章

  • 关于 Vue、React 与 MVVM

    首先要明确 MVVM 是什么,它是 MVC 的衍生架构。无论是 MVC 还是 MVVM 都不是只针对于前端或后端开...

  • 框架类型

    MVVM框架(Vue,Angular,React都属于MVVM) MVVM即Model-View-ViewMode...

  • 2020前端面试题二之vue

    1、vue与react的区别 vue和react的区别 两者本质的区别:模板和组件化的区别 Vue本质是MVVM框...

  • 01、Vue-入门基础

    Vue中文网 一、MVVM框架 MVVM框架好处 MVVM框架Angular.js/React.js/Vue.js...

  • 01、Vue-入门基础

    Vue中文网 一、MVVM框架 MVVM框架好处 MVVM框架Angular.js/React.js/Vue.js...

  • 浅谈MVC,MVP,MVVM渐进变化及React与Vue比较

    [转] 浅谈MVC,MVP,MVVM渐进变化及React与Vue比较[https://segmentfault.c...

  • vue

    vue组件与实例的关系 0. 谈谈 vue 和 react ? 1.mvvm 框架是什么答:vue是实现了双向数据...

  • React面试题

    React 和 Vue 区别 1、React严格上是针对的是 mvc 中的 view 层 ,而Vue 是MVVM层...

  • MVVM框架

    了解MVVM框架吗? Vue.js React.js Angular.js 谈谈你对MVVM的认识? MVVM的定...

  • 2018-09-27

    vue.js angular.js react.js 是mvvm框架

网友评论

      本文标题:关于 Vue、React 与 MVVM

      本文链接:https://www.haomeiwen.com/subject/mldluhtx.html