Vue中学习笔记-数据代理

文章目录


前文提要

本人仅做个人学习记录,如有错误,请多包涵


数据代理的概念

使用一个对象代理对另一个对象中属性的操作。

MVVM模型和Vue中的数据代理

Vue框架是建立在MVVM的基础上开发的。

MVVM框架模型了解:什么是MVVM框架?

第一个M代表Model ,模型,也就是数据

第一个V代表View ,视图,也就是呈现出来的效果

最后的VM代表ViewModel,是视图模型,是抽离出来的部分逻辑代码,用于构建视图和模型之间的关联,能够借此管理两部分。

M,模型

Vue中的Model也就是Vue实例中的data中的数据,也就是下文data后大括号中的内容

js 复制代码
const vm = new Vue({
      // el: '#box',
      data: {
        name: "这里是name的值",
      }
})

V,视图

Vue中的View视图,则是html中嵌入了Vue框架特殊语法待处理的模版代码,

html 复制代码
<div class="box" id="box">
    <h1>
      hello,world{{name}}
    </h1>
  </div>

例如这里的,div标签,就是我理解中的Vue里的视图,

VM,视图模型

至于VM,视图模型,则是整个Vue实例。

通过这种关系,也就是通过这种数据代理的方法,将html中的数据和Vue实例中的data数据关联起来。

在第一个M中的代码用vm指向整个Vue实例,代码中的data会在vm上生成一个属性_data,_data不是Vue实例中的data,但是实例中的data的数据,_data中都有。

接着就是一串代码

html 复制代码
<div class="box" id="box">
    <h1>
      hello,world{{name}}
    </h1>
  </div>

在这两层大括号中,我们可以直接写js表达式也可以写出Vue实例中含有的各类属性

那么Vue实例中有name吗,按照上面的讲述,是不是应该写成

html 复制代码
hello,world{{_data.name}}

才对,写成_data.name这样没错,但其中Vue中数据代理的体现还体现在,它自动地在vm的身上创建了data中的属性

你对data的访问和修改,实际上操控的都是_data中的数据(这里就是数据代理的体现,用一个对象代理另一个对象的操作),_data和data中的数据又是关联的。

就可以通过name实现_data.name的操作,目的是编写代码更加方便


至此,结束。

如果你觉得这篇文章写的不错,多多点赞~收藏吧!

相关推荐
靡不有初11116 分钟前
CCF-CSP第18次认证第一题——报数【两个与string相关的函数的使用】
c++·学习·ccfcsp
计算机-秋大田1 小时前
基于Spring Boot的兴顺物流管理系统设计与实现(LW+源码+讲解)
java·vue.js·spring boot·后端·spring·课程设计
gu201 小时前
c#编程:学习Linq,重几个简单示例开始
开发语言·学习·c#·linq
禾苗种树2 小时前
在 Vue 3 中使用 ECharts 制作多 Y 轴折线图时,若希望 **Y 轴颜色自动匹配折线颜色**且无需手动干预,可以通过以下步骤实现:
前端·vue.js·echarts
小蒜学长2 小时前
医疗报销系统的设计与实现(代码+数据库+LW)
数据库·spring boot·学习·oracle·课程设计
羊小猪~~2 小时前
MYSQL学习笔记(九):MYSQL表的“增删改查”
数据库·笔记·后端·sql·学习·mysql·考研
余多多_zZ3 小时前
鸿蒙初学者学习手册(HarmonyOSNext_API14)_组件截图(@ohos.arkui.componentSnapshot (组件截图) )
学习·华为·harmonyos·鸿蒙·鸿蒙系统
yuanbenshidiaos3 小时前
【数据挖掘】数据仓库
数据仓库·笔记·数据挖掘
小盼江3 小时前
水果生鲜农产品推荐系统 协同过滤余弦函数推荐水果生鲜农产品 Springboot Vue Element-UI前后端分离 代码+开发文档+视频教程
vue.js·spring boot·ui
初遇你时动了情4 小时前
react module.scss 避免全局冲突类似vue中scoped
vue.js·react.js·scss