Skip to content

MVVM

前后端不分离

在早期,Web 应用开发主要采用前后端不分离的方式,它是以后端直接渲染模板完成响应为主的一种开发模式。以前后端不分离方式开发的 Web 应用的架构图如下。

mvvm syntax graph

前后端分离

随着 AJAX 技术的出现,可以在不刷新页面向服务器发送 http 请求,所以又出现了前后端分离的开发模式。 后端只要开发接口即可,前端可以通过发起 AJAX 请求,拿到后端的数据,渲染和怎样调用接口的事情,交给前端。以前后端分离方式开发的 Web 应用的结构图如下:

mvvm syntax graph

特点

  • 是目前 Web 开发的主流模式。
  • 需要静态文件服务器和后端接口服务器。
  • 后台服务器只提供的数据接口的服务,响应的往往是 JSON 数据。
  • 开发时,前后端责任分工明确。
  • 前后端解耦,可以同时开发,提高开发效率。
  • 一个后台即可满足网站、app、小程序等多种应用的需要。

MVVM

核心思想

MVVM的核心思想是将应用程序的视图(View)和模型(Model)分离,并为模型创建一个视图模型(ViewModel),以便在视图和模型之间进行双向绑定。这样,当模型更改时,视图将自动更新,而当用户在视图中进行更改时,模型也将自动更新。

基本组成部分

  • 模型(Model):表示应用程序的数据和业务逻辑。
  • 视图(View):用户与模型进行交互的界面。
  • 视图模型(ViewModel):处理模型数据并在视图和模型之间进行双向绑定的中间层。

优点

  • 数据驱动的界面:视图模型处理数据,视图自动更新,从而实现了数据驱动的界面。
  • 双向绑定:双向绑定允许视图和模型之间的自动同步,从而减少了代码量。
  • 可测试性:MVVM将视图和模型分离,使得测试更容易进行。
  • 可重用性:视图模型可以被重复使用,从而实现代码重用。
  • 提高代码的可维护性和可重用性。
  • 提高开发效率。

缺点

  • 需要学习额外的框架和库。
  • 需要额外的开发时间和精力。

适用场景

  • 需要处理大量数据和复杂业务逻辑的应用程序。
  • 需要实现视图和模型之间的双向绑定和交互的应用程序。
  • 需要提高开发效率和代码可维护性的应用程序。

实现

  • 将模型封装为数据类。
  • 为模型创建一个视图模型,处理模型数据并在视图和模型之间进行双向绑定。
  • 将视图模型绑定到视图。
  • 将视图模型中的数据传递给视图。
  • 处理视图中的用户输入,将其传递给视图模型。

Released Under The MIT License.