Vue学习计划--Vue2(二)Vue代理方式

Vue

  1. data中的两种方式

    1. 对象式
    data:{}
    
    1. 函数式
    data(){return {}
    }
    

    示例:

    <body><div id="app">{{ name }} {{ age}} {{$options}}<input type="text" v-model="value"></div><script>let vm = new Vue({el: '#app',// 对象式// data:{//   name: '小红',//   age: 16// }// 函数式data(){return {name: '小明',age: 55,value: '111'}}})</script></body>
    
  2. el中的两种方式

    1. new Vue时候配置 el 属性
    const vm = new Vue({el: '#root'
    })
    
    1. 先创建Vue实例,随后再通过 vm.$mount(‘#root’)指定el的值(这种方式更加灵活)
    const vm = new Vue({})
    vm.$mount('#root')
    

    示例:

    <body><div id="app">{{ name }}</div><script>//el的两种方式// let vm = new Vue({//   // el:'#app',//   data:{//     name: '小红'//   }// })let vm = new Vue({data:{name: '小红'}})// 这种方式更加灵活,比如加个定时器setTimeout(()=>{vm.$mount('#app')}, 3000)</script></body>
    
  3. MVVM模型 vue受到mvvm模型的启发

    1. M: 模型(Model): data的数据
    2. V: 视图(View): 模板代码
    3. VM: 视图模型(ViewModel): Vue实例对象(核心)

    ViewModel 包含 DOM Listeners 和 Data Bindings。Data Bindings 用于将数据绑定到 View 上显示,DOM Listeners 用于监听操作。

    • 从 Model 到 View 的映射,也就是 Data Bindings 。这样可以大量省略我们手动 update View 的代码和时间。
    • 从 View 到 Model 的事件监听,也就是 DOM Listeners 。这样我们的 Model 就会随着 View 触发事件而改变。
        <p>{{ name }}</p> // 改变data中的数据,页面随之变化<input type="text" v-model="name"> //改变input的value值,data中的值也变化
    

    在这里插入图片描述

    在Vue中的mvvm:

    • data中所有的属性、computed的计算属性、methods中的方法等,最后都出现在了vue实例vm身上。
    • vue实例vm身上所有的属性 及 Vue原型上所有属性,在Vue模板{{}}中都可以直接使用。
  4. 数据代理:

    问题:{{}} 为什么可以访问vm实例上的所有属性|data里的数据为什么会出现在vm身上

    1. 先认识一个方法:Object.defineProperty(obj,prop, options):
      1:作用:就是直接在一个对象上定义一个新属性,或者修改一个已经存在的属性
      2. 接收三个参数:
      obj 需要定义属性的当前对象
      prop 当前需要定义的属性名
      options:属性配置
      3. 这个方法有缺点:现在先点一下:
      1. 不能监听数组的变化
      2. 不能监听新属性的添加
      3. 兼容性问题
      4. 不能深度监听
      示例:
    let num = 300
    let person = {name: '小明',sex: '男'
    }
    Object.defineProperty(person, 'age', {//value: 15,//enumerable: true, // 控制属性是否可以枚举, 默认false//writable: true, // 控制属性是否可以被修改,默认false//configurable: true, // 控制属性是否可以被删除,默认false// 当有人读取person的age属性时,get函数(getter)就会被调用,且返回值是age的值// 注意:不能同时指定访问器和值或可写属性,什么意思呢,就是上面的配置和下面的get、set不可同时存在get(){console.log('有人读取了age属性')return number}// 当有人修改person的age属性时,set函数(setter)就会被调用,且会收到修改的具体指set(value){console.log('有人修改了age属性')number = value}
    })
    
    1. 数据代理: 通过一个对象代理对另一个对象中属性的操作(读/写),可以在控制台做两个操作:
      • 输出一下obj,obj2,和obj2.x,并且把obj2输出后的对象展开一下
      • 更改一下obj2.x并输出一下obj
    let obj = {x: 100}
    let obj2 = {y: 200}
    Object.defineProperty(obj2, 'x', {get(){return obj.x},set(value){obj.x = value}
    })
    
    1. Vue中的数据代理:通过vm对象来代理data对象中的属性的操作(读/ 写)
    1. 好处:
      更加方便操作data中的数据
    2. 基本原理:
      通过Object.defineProperty()把data对象中所有的属性添加到vm上
      为每一个添加到vm上的属性,都指定一个getter/setter
      在getter/setter内部去操作(读/写)data中对应的属性
      在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/198269.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux操作系统之wget下载软件并安装

文章目录 前言一、apt下载二、wget下载1、新建目录存放文件2、根据下载地址使用wget下载安装包3、解压包4、命令指定目录&#xff0c;让其生效如有启发&#xff0c;可点赞收藏哟~ 前言 一般安装可以直接使用apt命令&#xff0c;不过安转的不是最新版本的&#xff0c;且没法指定…

驱动开发--内核添加新功能

Ubuntu下这个文件为开发板ls命令的结果 内核的内容&#xff1a; mm&#xff1a;内存管理 fs&#xff1a;文件系统 net&#xff1a;网络协议栈 drivers&#xff1a;驱动设备 arch与init&#xff1a;跟启动相关 kernel与ipc&#xff1a;任务&#xff0c;进程相关 向内核增…

Depop自养号下单教程,测评环境、IP与买家资料的关键

Depop是一家总部位于英国伦敦的在线时尚市场和社交媒体平台。该平台于2011年由Simon Beckerman创立&#xff0c;旨在提供一个结合了时尚、创意和社交互动元素的独特购物体验。Depop已经发展成为一个备受欢迎的时尚社交应用&#xff0c;吸引了全球范围内的卖家和购物者。提供了一…

一文读懂3D开发工具HOOPS SDK

前言 Tech Soft 3D是全球领先的3D领域开发工具提供商&#xff0c;可帮助软件团队交付成功的应用程序。Tech Soft 3D成立于1996年&#xff0c;该公司的工具包产品为全球数亿台计算机上运行的近500个独特应用程序提供支持&#xff0c;已经助力SolidWorks、AutoDesk、GrabCAD、CD…

kafka 3.x 学习笔记

kafka 3.x 学习笔记 在 kafka 2.8.0 版本之前&#xff0c;安装使用 kafka 需要配套安装 zookeeper&#xff0c;但在 2.8.0 版本之后&#xff0c;不再需要安装 zookeeper&#xff0c;本次学习笔记采用的 kafka 版本为 3.0.0。 文章目录 kafka 3.x 学习笔记一、kafka 定义1 什么是…

任务管理器快捷键分享!这些知识很有用!

“我刚学习使用电脑没多久&#xff0c;想问问大家任务管理器这个功能有什么用处呀&#xff1f;在使用任务管理器时有什么快捷键能快速进入吗&#xff1f;感谢解答&#xff01;” 在日常使用电脑的过程中&#xff0c;我们经常需要打开任务管理器来进行一些操作。而掌握任务管理器…

大数据SpringBoot项目|基于SpringBoot+MyBatis框架健身房管理系统的设计与实现

大数据SpringBoot项目|基于SpringBootMyBatis框架健身房管理系统的设计与实现 摘 要:本文基于Spring Boot和MyBatis框架&#xff0c;设计并实现了一款综合功能强大的健身房管理系统。该系统涵盖了会员卡查询、会员管理、员工管理、器材管理以及课程管理等核心功能&#xff0c;…

机器视觉中的图像增强与对比度调整技术

在机器视觉中&#xff0c;图像增强与对比度调整技术是常用的方法&#xff0c;旨在改善图像的质量和视觉效果&#xff0c;或将图像转换成更适合人眼观察或机器分析识别的形式。 图像增强技术可以针对给定图像的应用场合&#xff0c;有目的地强调图像的整体或局部特性&#xff0…

移动端APP自动化测试框架-UiAutomator2基础

很早以前&#xff0c;我用uiautomatorjava实践过Android APP自动化测试&#xff0c;不过今天要提的不是uiautomator&#xff0c;而是uiautomator2。听起来uiautomator2像是uiautomator的升级版&#xff0c;但是这两款框架仅仅是名字上比较相似&#xff0c;实际上没有任何关联。…

硬盘分区丢失?这样轻松恢复!

​“在我安装操作系统的过程中&#xff0c;我先把C盘&#xff08;100G&#xff09;进行了格式化&#xff0c;而我的D盘大小为297G&#xff0c;然而在Win PE中&#xff0c;所显示的仅是247G&#xff08;CD盘总容量&#xff09;&#xff0c;这247G是空无一物的。让我感到困惑的是…

02、pytest环境准备

工具准备 python官网下载&#xff1a;https://www.python.org/pycharm官网下载&#xff1a;https://www.jetbrains.com.cn/en-us/pycharm/pytest官方文档&#xff1a;https://docs.pytest.org/en/7.4.x/python-office官网文档&#xff1a;http://www.python-office.com/ 参考…

《消息队列MyMQ》——参考RabbitMQ实现

目录 一、什么是消息队列&#xff1f; 二、需求分析 1&#xff09;核心概念 2&#xff09;核心API 3&#xff09;交换机类型 4&#xff09;持久化 5&#xff09;网络通信 ​编辑 6&#xff09;消息应答 三、 模块划分 四、创建核心类 1.ExChange 2.MSGQueue 3.Bind…

NSSCTF 文件上传漏洞题目

目录 [SWPUCTF 2021 新生赛]easyupload1.0 [SWPUCTF 2021 新生赛]easyupload2.0 [SWPUCTF 2021 新生赛]easyupload3.0 [SWPUCTF 2021 新生赛]easyupload1.0 这是一个文件上传漏洞的题目 我们的思路是上传一句话木马&#xff0c;用工具进行连接 先编写一句话木马 将文件后缀…

【深度学习】Stable Diffusion中的Hires. fix是什么?Hires. fix原理

文章目录 **Hires. fix****Extra noise**Upscalers Hires. fix https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features#hires-fix 提供了一个方便的选项&#xff0c;可以部分地以较低分辨率呈现图像&#xff0c;然后将其放大&#xff0c;最后在高分辨率下添…

【数电笔记】16-卡诺图绘制(逻辑函数的卡诺图化简)

目录 说明&#xff1a; 最小项卡诺图的组成 1. 相邻最小项 2. 卡诺图的组成 2.1 二变量卡诺图 2.2 三表变量卡诺图 2.3 四变量卡诺图 3. 卡诺图中的相邻项&#xff08;几何相邻&#xff09; 说明&#xff1a; 笔记配套视频来源&#xff1a;B站&#xff1b;本系列笔记并…

文献速递:(第三部分)— (超声非破坏性评估中合成和增强训练数据生成与评估的最新研究进展)

文献速递&#xff1a;&#xff08;第三部分&#xff09;— &#xff08;超声非破坏性评估中合成和增强训练数据生成与评估的最新研究进展&#xff09; Title 题目 A review of synthetic and augmented training data for machine learning in ultrasonic non-destructive e…

iOS17桌面待办事项提醒小组件,让的iPhone变身提醒神器

在现代社会&#xff0c;每天都有太多的事情需要处理&#xff0c;而我经常发现自己在繁忙中遗漏一些重要的事项。曾经&#xff0c;我每次都要在纸上记下要做的事情&#xff0c;可事后发现&#xff0c;这也没能解决我的忘性问题。 直到我尝试了一个新的方式&#xff0c;我的iPho…

韵达单号查询,韵达快递查询,用表格导出单号的详细物流信息

批量查询韵达快递单号的物流信息&#xff0c;并以表格的形式导出单号的详细物流信息。 所需工具&#xff1a; 一个【快递批量查询高手】软件 韵达快递单号若干 操作步骤&#xff1a; 步骤1&#xff1a;运行【快递批量查询高手】软件&#xff0c;第一次使用的伙伴记得先注册&…

DCMTK 目录结构

DCMTK 目录结构 经过编译后的DCMTK包含许多文件&#xff0c;在使用的时候我们需要将这些文件包含到对应的项目中&#xff0c;源码编译得到的文件如下&#xff1a; 如果你还没有成功编译&#xff0c;可以参考 dcmtk编译失败后的解决思路&#xff08;附带编译后文件下载&#x…

【生物医学信号处理及其MATLAB应用】Chapter 1 生物医学信号概述

Chapter 1 生物医学信号概述 第一章 生物医学信号概述一、信号二、生物医学信号三、生物医学信号处理的内容三、处理生物医学信号的目的 第一章 生物医学信号概述 一、信号 ​ 信号&#xff1a;携带信息的物理量 ​ 来自于真实世界的信号各不相同&#xff0c;但大致可分为四…