前端基本知识

67 阅读3分钟

关于MVVM和MVC架构

前端的MVVM(Model-View-ViewModel)和MVC(Model-View-Controller)是两种常见的软件架构模式,它们都旨在分离关注点,以提高代码的可维护性和可扩展性。

MVC 是一种较早的模式,它将应用程序分为三个主要部分:

  • Model(模型) :负责数据和业务逻辑。
  • View(视图) :负责显示用户界面。
  • Controller(控制器) :负责接收用户输入,处理用户交互,并将数据从模型传递到视图。

在MVC中,视图和模型通常是直接连接的,控制器充当两者之间的中介。这种模式在许多传统的Web应用程序中被广泛使用。

MVVM 是对MVC的改进,它引入了ViewModel作为模型和视图之间的抽象层:

  • Model(模型) :同样负责数据和业务逻辑。
  • View(视图) :负责显示用户界面,但不包含任何逻辑。
  • ViewModel(视图模型) :负责将模型数据转换为视图可以展示的形式,并响应用户的输入。它通过数据绑定将视图和模型连接起来,使得视图的更新可以自动反映模型的变化,反之亦然。

MVVM的一个关键特点是双向数据绑定(如angular的 [(ngModel)] 指令),这意味着当数据发生变化时,界面会自动更新,而用户界面的变化也会自动同步到数据模型中。这减少了手动操作DOM的需要,简化了开发过程。

MVVM模式在现代前端框架中非常流行,如Angular、Vue.js和React等。这些框架提供了工具和库来支持MVVM架构,使得开发者可以更容易地构建和维护复杂的用户界面。

主流浏览器的JavaScript执行引擎及其特点

每个主流浏览器都有自己的JavaScript引擎来实现ECMAScript标准。这些引擎可能在性能优化、特性支持和安全性方面有所不同,但它们都遵循ECMAScript规范。例如:

  • V8:由Google开发,用于Chrome和Node.js,以其高性能和优秀的垃圾回收机制而闻名。
  • SpiderMonkey:由Mozilla开发,用于Firefox,以其长期的稳定性和安全性著称。
  • JavaScriptCore(也称为Nitro):由Apple开发,用于Safari,与Apple的产品紧密集成而在iOS设备上表现出色。
  • Chakra(已废弃):曾经由Microsoft开发,用于旧版的Internet Explorer和Edge。
  • Blink(V8的分支):用于较新版本的Microsoft Edge。

SPA(Single Page Application)

单页应用(SPA,Single Page Application)是一种网页应用或网站的设计模式,它在浏览器中仅加载一个 HTML 页面,并动态地更新该页面,而不是为每个新页面加载新的 HTML。这使得应用能够与用户交互,无需重新加载整个页面。

主要特点包括:

  • 动态重写:SPA 在用户与应用交互时动态地重写当前页面,而不是加载新页面。
  • 速度:由于大部分资源(如 HTML、CSS、JavaScript)只加载一次,因此 SPA 通常比传统的多页应用有更快的响应。
  • 浏览器历史记录:虽然 SPA 只有一个页面,但它们可以使用浏览器的历史 API 来创建可导航的 URL,使用户可以使用浏览器的前进和后退按钮。
  • 与后端交互:SPA 通常会与后端的 Web API 进行数据交互,获取所需的数据并更新视图。
  • 前端路由:SPA 使用前端路由来管理应用中的不同视图,而不是依赖服务器端的路由。

简而言之,单页应用是一种在浏览器中动态更新和呈现内容的方法,而无需每次用户操作时都从服务器加载新页面。这提供了流畅、快速和用户友好的体验。