大家好,我是大澈!一个喜欢结交朋友、喜欢编程技术和科技前沿的老程序员👨🏻💻,关注我,科技未来或许我能帮到你!
今天又是一个老生常谈的问题,Vue 的 MVVM 工作原理是什么?
我在做面试的时候,总喜欢一开始先问这个,然后再据此对 Vue 相关原理展开追问。
下面我们来进行简单的拆解吧。
一、重点描述
Vue 是基于 MVVM(Model-View-ViewModel)架构的渐进式的 js 框架。
当别人问你:什么是Vue?这或许是一个最确切的回答。
关于为什么说 Vue 是渐进式框架?可以看我这篇文章 为什么说 Vue 是渐进式框架。
二、细节剖析
1、定义解释
MVVM 是一种设计模式,它将应用程序分为三个主要部分:Model(模型) 、View(视图) 和 ViewModel(视图模型) 。
下面分别展开解释一下。
1.1、Model(模型)
模型是应用的业务逻辑和数据。
在 Vue 中,它是 data
对象,包含了我们要显示的数据。
经过数据劫持处理,成为响应式数据,作为整个应用的状态存储。
1.2、View(视图)
视图是用户界面,用来展示数据。
在 Vue 中,它就是模板部分,结合了指令和数据绑定。
由模板编译生成的虚拟 DOM 描述,直接反映 Model 的状态。
1.3、ViewModel(视图模型)
视图模型是连接 Model 和 View 的桥梁,负责将 View 和 Model 的变化进行同步。
在 Vue 中,Vue实例
就是视图模型,来控制视图和数据的双向更新。
2、核心工作原理
当 Model 中的数据发生变化时,响应式系统会自动通知相关的 Watcher,重新渲染对应的虚拟 DOM,再通过 Diff 算法只更新发生变化的部分,从而高效更新视图。
反之,用户在视图上的操作也会通过 数据双向绑定 或 事件绑定 来自动更新 Model。
这些机制协同工作,构成了 Vue 的 MVVM 框架,使得数据与视图始终保持一致,同时极大地简化了开发过程。
简单来说:
视图到数据的更新方式:数据双向绑定(v-model)、事件绑定(v-on)。
数据到视图的更新方式:数据响应式 可以看我这篇文章 Vue2 响应式原理。
好了,今天要分享的内容就是这么多,最后感谢朋友们给个点赞、分享、推荐,拜拜~