MVVM框架是什么?
前端开发
数据处理
浏览:1087 次

MVVM框架介绍模型–视图–视图模型(MVVM)是一种软件架构设计模式,由Microsoft WPF和Silverlight的架构师Ken Cooper和Ted Peters开发,是一种事件驱动编程方法,用于简化用户界面。
MVVM源自经典的模型-视图-控制器(MVC)模式(在此期间,模型-视图演示者(MVP)模式也得到了发展,可以忽略)。MVVM的出现促进了GUI前端开发和后端业务逻辑的分离,大大提高了前端开发效率。MVVM的核心是ViewModel层,它就像一个值转换器。它负责转换模型中的数据对象,使数据更易于管理和使用。该层向上与视图层绑定双向数据,向下通过接口请求与模型层交互,起到上下作用。
MVVM框架组件的分层设计一直是软件体系结构的主流设计思想之一,MVVM也不例外。
#视图层视图是视图层,即用户界面。前端主要由HTML和CSS构建。为了更方便地显示ViewModel或Model层的数据,已经生成了各种前端和后端模板语言,如FreeMarker、Marko、Pug、Jinja2等。每个MVVM框架,如KnockoutJS、Vue、Angular,都有自己的内置模板语言用于构建用户界面。
#模型层是指数据模型,通常指后端执行的各种业务逻辑处理和数据操作,主要围绕数据库系统。后端处理通常非常复杂:

后端:我们的业务逻辑和数据处理将非常复杂!前端:这不关我的事!
无论后端业务处理有多复杂,它都与我们的前端无关。只要后端确保外部接口足够简单,我就请求api并返回数据。这就是我们之间的关系。其他一切都是无稽之谈。
#ViewModel层ViewModel是由前端开发人员生成和维护的视图数据层。
在该层中,前端开发人员转换和处理从后端获得的模型数据,并进行二次封装,以生成符合视图层预期用途的视图数据模型。需要注意的是,ViewModel封装的数据模型包括两个部分:视图状态和行为,而model层的数据模型只包含状态,例如页面的这一部分显示的内容和该部分显示的属性属于视图状态(显示),而页面加载时发生的情况、单击该部分时发生的事情、,滚动此部分时发生的情况属于视图行为(交互)。视图状态和行为封装在ViewModel中。这种封装使ViewModel能够完整地描述视图层。由于实现了双向绑定,ViewModel的内容将实时显示在View层中,这令人兴奋,因为前端开发人员不再需要通过低效和麻烦的方式操作DOM来更新视图。MVVM框架已经很好地完成了最肮脏和令人厌烦的部分。我们开发人员只需要处理和维护ViewModel,更新后的数据视图将自动相应更新,真正实现数据驱动开发。请参见,视图层表示的不是模型层的数据,而是ViewModel的数据。ViewModel负责与模型层交互,这将完全分离视图层和模型层。这种解耦是至关重要的,它是实施前端和后端分离方案的重要组成部分。
框架比较:

(app视图模型)框架是统软云推出的框架,更接近于原生编程体验。它提供了一个简单的模型来分离app用户界面、业务逻辑和数据模型,适用于高度定制的项目。AVM是统软云基于标准H5子集设计的DSL中间语言编程框架。它可以具有以下功能:
虚拟DOM:通过虚拟DOM,渲染到不同的终端,充分尊重系统特性,对不同的终端进行差异化处理,实现高效渲染;
组件化:具有高重用性、可组合性和可维护性的架构设计隐藏了复杂的DOM结构和行为,允许开发人员专注于app的功能和外观;
数据绑定:轻松将数据源绑定到app用户界面,降低逻辑复杂性和开发难度;
状态管理和路由:有效