二、再识VUE-MVVM

一、初识VUE
二、再识VUE-MVVM
三、VUE数据代理

MVVM

  • Vue.js 专注于 MVVM 模型的 ViewModel 层。它通过双向数据绑定把 View 层和 Model 层连接了起来。实际的 DOM 封装和输出格式都被抽象为了 Directives 和 Filters。


ViewModel

  • 一个同步 Model 和 View 的对象。在 Vue.js 中,每个 Vue 实例都是一个 ViewModel。它们是通过构造函数 Vue 或其子类被创建出来的。
js 复制代码
var vm = new Vue({ /* options */ })

View

  • 被 Vue 实例管理的 DOM 节点。
js 复制代码
vm.$el 
  • Vue.js 使用基于 DOM 的模板。每个 Vue 实例都关联着一个相应的 DOM 元素。当一个 Vue 实例被创建时,它会递归遍历根元素的所有子结点,同时完成必要的数据绑定。当这个视图被编译之后,它就会自动响应数据的变化。

  • 在使用 Vue.js 时,除了自定义指令 (稍后会有解释),您几乎不必直接接触 DOM。当数据发生变化时,视图将会自动触发更新。这些更新的粒度精确到一个文字节点。同时为了更好的性能,这些更新是批量异步执行的。

Model

  • 一个轻微改动过的原生 JavaScript 对象。
js 复制代码
vm.$data // The Model
  • Vue.js 中的模型就是普通的 JavaScript 对象 ------ 也可以称为数据对象。一旦某对象被作为 Vue 实例中的数据,它就成为一个 "响应式" 的对象了。你可以操作它们的属性,同时正在观察它的 Vue 实例也会收到提示。Vue.js 把数据对象的属性都转换成了 ES5 中的 getter/setters,以此达到无缝的数据观察效果:无需脏值检查,也不需要刻意给 Vue 任何更新视图的信号。每当数据变化时,视图都会在下一帧自动更新。

  • Vue 实例代理了它们观察到的数据对象的所有属性。所以一旦一个对象 { a: 1 } 被观察,那么 vm. d a t a . a 和 v m . a 将会返回相同的值,而设置 v m . a = 2 则也会修改 v m . data.a 和 vm.a 将会返回相同的值,而设置 vm.a = 2 则也会修改 vm. data.a和vm.a将会返回相同的值,而设置vm.a=2则也会修改vm.data。

  • 数据对象是被就地转化的,所以根据引用修改数据和修改 vm.$data 具有相同的效果。这也意味着多个 Vue 实例可以观察同一份数据。在较大型的应用程序中,我们也推荐将 Vue 实例作为纯粹的视图看待,同时把数据处理逻辑放在更独立的外部数据层。

  • 值得提醒的是,一旦数据被观察,Vue.js 就不会再侦测到新加入或删除的属性了。作为弥补,我们会为被观察的对象增加 add , set和 $delete 方法。

Directives

  • 指令

  • 带特殊前缀的 HTML 特性,可以让 Vue.js 对一个 DOM 元素做各种处理。

js 复制代码
<div v-text="message"></div>
  • 这里的 div 元素有一个 v-text 指令,其值为 message。Vue.js 会让该 div 的文本内容与 Vue 实例中的 message 属性值保持一致。

  • Directives 可以封装任何 DOM 操作。比如 v-attr 会操作一个元素的特性;v-repeat 会基于数组来复制一个元素;v-on 会绑定事件等。

相关推荐
巴勒个啦35 分钟前
2026 年 CSS 选型真相:我用 Tailwind v4 + 原生新特性重构了一个组件库
前端·angular.js
LEE35 分钟前
别再堆 AGENTS.md 了:前端团队如何把 AI Coding 做成一套可执行的工程系统
前端·后端
三十而立洋42 分钟前
JavaScript 原型链:一张图讲透「对象继承」的底层真相
前端·javascript
工具派1 小时前
markdown在线编辑器怎么选?渲染管线的3个坑和md转PDF跑版记录
前端·后端
平头哥技术团队1 小时前
Day 13 | 调 line-height 和 margin:三处间距让名片页脱离模板感
开发语言·前端·javascript·学习·html5
一位正在转型AI全栈的前端工程师1 小时前
AI 全栈学习之旅 -Week 9:什么是AI Agent?从Function Calling到LangGraph
前端·python
计算机魔术师1 小时前
Claude Opus 5 干不过人类客服?23.9% 的通过率撕开 Agent 真相
前端
cjy0001111 小时前
2026年9月零基础能听懂国内 FDE 讲师的课吗?
大数据·前端·人工智能·fde
南雨北斗2 小时前
wangeditor5 在vue3项目中的正确配置
前端
Cache技术分享2 小时前
517. Java 方法句柄 - 方法句柄 vs 反射 API
前端·后端