二、再识VUE-MVVM

devtools/2024/11/15 4:26:37/

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

MVVM

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

在这里插入图片描述
在这里插入图片描述

ViewModel

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

View

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

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

Model

  • 一个轻微改动过的原生 JavaScript 对象。
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.avm.a将会返回相同的值,而设置vm.a=2则也会修改vm.data。

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

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

Directives

  • 指令

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

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

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


http://www.ppmy.cn/devtools/31572.html

相关文章

Java中的Unsafe类是啥和例子

Unsafe 类是 Java 中的一个内部类&#xff0c;全名为 sun.misc.Unsafe。它提供了一系列操作 Java 内存、线程、类等的低级方法&#xff0c;这些方法绕过了 Java 标准库中的许多安全检查和限制&#xff0c;因此在使用时需要格外小心。Unsafe 类通常用于 Java 的高级库和框架中&a…

【LeetCode刷题】410. 分割数组的最大值

1. 题目链接2. 题目描述3. 解题方法4. 代码 1. 题目链接 410. 分割数组的最大值 2. 题目描述 3. 解题方法 题目中提到的是某个和的最大值是最小的&#xff0c;这种题目是可以用二分来解决的。 确定区间&#xff0c;根据题目的数据范围&#xff0c;可以确定区间就是[0, 1e9]…

实习与就业|基于Springboot+vue的实习与就业管理系统(源码+数据库+文档)

实习与就业目录 基于Springbootvue的实习与就业管理系统 一、前言 二、系统设计 三、系统功能设计 管理员登录 就业管理 企业公告信息管理 企业公告类型管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主…

深入了解 Arthas:Java 应用程序诊断利器

序言 在 Java 应用程序的开发和运维过程中&#xff0c;诊断和解决性能问题是一项非常重要的任务。而 Arthas 作为一款由阿里巴巴开发的 Java 应用程序诊断工具&#xff0c;提供了一系列强大的功能&#xff0c;帮助开发人员实时监控、诊断和调优Java 应用程序。本文将深入介绍 …

【java数据结构之八大排序(上)-直接插入排序,希尔排序,选择排序,堆排序,向下调整(大根堆,小根堆)等知识详解】

&#x1f308;个人主页&#xff1a;努力学编程’ ⛅个人推荐&#xff1a;基于java提供的ArrayList实现的扑克牌游戏 |C贪吃蛇详解 ⚡学好数据结构&#xff0c;刷题刻不容缓&#xff1a;点击一起刷题 &#x1f319;心灵鸡汤&#xff1a;总有人要赢&#xff0c;为什么不能是我呢 …

OpenCV Mat对象与CImage对象间的数据传输实例

在用MFC写图像处理程序时&#xff0c;使用OpenCV可以做到事半功倍。但是&#xff0c;如果使用OpenCV4.0或OpenCV4.0以后版本&#xff0c;要显示图像可能会遇到麻烦&#xff0c;因为OpenCV去掉了原有的cvGetWindowHandle()函数&#xff0c;没法再用cvGetWindowHandle()函数来获取…

算法--分治法

分治法是一种算法设计策略&#xff0c;它将一个复杂的问题分解成两个或多个相同或相似的子问题&#xff0c;直到这些子问题可以简单地直接解决。然后&#xff0c;这些子问题的解被合并以产生原始问题的解。 分治法通常遵循以下三个步骤&#xff1a; 分解&#xff1a;将原问题…

分布式与一致性协议之一致哈希算法(二)

一致哈希算法 使用哈希算法有什么问题 通过哈希算法&#xff0c;每个key都可以寻址到对应的服务器&#xff0c;比如&#xff0c;查询key是key-01,计算公式为hash(key-01)%3,警告过计算寻址到了编号为1的服务器节点A&#xff0c;如图所示。 但如果服务器数量发生变化&#x…