Vue3基础_响应式数据

news2024/11/18 3:47:22

setup是组合式API

选项式API,是data,methods,computed,watch等等全都是分开的,但是组合式API是把这些东西全都写在一起了。 

1 vue2的缺点

(1)使用vue2

Vue2版本对数据的拦截用的是Object.defineProperty, 

可以监测到对象的变化。因为obj是有匹配getter和setter的,

 但是如果要给这个对象,新添加属性,就会发现新添加的属性是没有getter和setter的,页面就无法显示出效果。

 

 (2)使用vue3

---组合式api

就是,把以前写在vue2中的data中的响应式数据,写在setup里。并通过reactive()方法,包裹数据,使它成为响应式数据

之前写在vue2中的methods里面的方法,也都写在setup里面。

---数据的响应

vue2使用的是defineProperty,当有数组的时候,无法为数组里面的每一项匹配getter和setter

let m = {
    a:1,
    b:2,
    arr:["a","b","c"]
}
let o = {}
Object.keys(m).forEach((key)=>{
    Object.defineProperty(o,key,{
        get(){
            return m[key]
        }
        set(){

            console.log("修改了")
        }
    })
})


当我们修改数组的第0项,数据是改变了,但是由于没有匹配set()方法,并不能监测到,触发不了函数

o.arr[0] = "xxx" 

 

 所以,vue2的监听原理就是,通过把我们传进去的数据对象,匹配了get和set方法,当数据修改的时候,触发了get和set方法,从而去刷新页面,但是对象深层和数组深层,由于还没匹配get和set方法,数据修改了,但是并没有触发set方法,没办法去刷新页面,对于对象深层和数组深层,必须使用递归。循环+递归

Vue3使用Proxy

------reactive写法

 也可以使用ref,注意使用ref时,需要通过.value访问

// 伪代码,不是真正的实现
const myRef = {
  _value: 0,
  get value() {
    track()
    return this._value
  },
  set value(newValue) {
    this._value = newValue
    trigger()
  }
}

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

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

相关文章

Spring源码篇(九)自动配置扫描class的原理

文章目录 前言ClassLoader如何加载jar包里的class自动配置扫描class的原理spring中的加载方式源码总结 前言 spring是怎样通过ComponentScan,或者自动配置扫描到了依赖包里class的? ClassLoader 这里涉及到了class Loader的机制,有些复杂&…

信必优行业服务能力-中国头部综合性证券公司

近期召开的国家高层会议提出 “要活跃资本市场,提振投资者信心”,明确了下一阶段资本市场发展新任务、新要求,资本市场有望呈现新气象、新风貌。各证券公司积极响应,全力推进资本市场回暖;同时各公司也借此东风修炼内功…

【科普知识】了解电机T型速度曲线和S型速度曲线的区别!

当电机从静止状态启动并加速到额定转速时,其速度变化并非线性的,而是呈现出不同的曲线特征。T型速度曲线和S型速度曲线是两种典型的电机加速曲线类型。那它们之间有什么区别呢?今天,就让我们来深入探讨电机加速曲线的奥秘。 电机速…

国内是不是很缺音视频的开发人员,想学习音视频开发

第一、音视频开发人员的培养是一个长期投入,见效慢的过程,不像有些培训机构,半年培训就可以出去找工作了。同时培训机构最终的目的是快速培训,推荐工作然后挣钱。而音视频开发见效太慢,没有一定时间的锻炼和项目喂养&a…

骨传导耳机什么牌子好?盘点最受欢迎的几款骨传导耳机

骨传导耳机最近一两年越来越受欢迎,市场上不同形态的非入耳式耳机都有,从骨传导,夹耳式到气传导等等都有。骨传导耳机的好处有很多,非入耳式,不伤耳朵,佩戴更舒适更安全。但是一直以来,骨传导耳…

如何把非1024的采样数放入aac编码器

一. aac对数据规格要求 二、代码实现 1.初始化 2.填入数据 3.取数据 三.图解 一. aac对放入的采样数要求 我们知道aac每次接受的字节数是固定的,在之前的文章里有介绍libfdk_aac音频采样数和编码字节数注意 它支持的采样数和编码字节数分别是: fdk_aac …

中规院:2023年黄河流域主要城市人居环境气象评估报告(附下载

关于报告的所有内容,公众【营销人星球】获取下载查看 核心观点 黄河流域年均高温天数呈上升趋势,近五年达到历史高位。 黄河流域年均高温天数由1978年的11日升至2022年的17日,整体呈上升趋势。1978-2022年间,2018年年均高温天数…

AutoCAD项目外包开发流程

进行AutoCAD的二次开发,一般常用的开发工具是AutoCAD的官方开发工具--ObjectARX。这是一个面向对象的C的开发环境,通过ObjectARX,我们可以直接获取AutoCAD的内核级别的信息,可以大幅度的开发出高效的程序。今天和大家分享这方面的…

【Leetcode刷题】位运算

本篇文章为 LeetCode 位运算模块的刷题笔记,仅供参考。 位运算的常用性质如下: a ^ a 0 a ^ 0 a a ^ 0xFFFFFFFF ~a目录 一. 基本位运算Leetcode29.两数相除Leetcode89.格雷编码 二. 位运算的性质Leetcode136.只出现一次的数字Leetcode137.只出现一…

Python(六十一)字典元素的获取

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

如何在IDEA使用数据库(新手教程)

第一步:将数据库服务器打开 进入你下载好的数据库路径到bin目录下cmd打开命令提示符界面 确认启动数据库 第二步:打开IDEA,找到IDEA数据库 第三步:选择要连接数据库 第四步:根据数据库信息连接数据库 连接之前的页面 输入我们要的…

2022年江西省职业院校技能大赛网络搭建与应用赛项正式赛卷

2022年江西省职业院校技能大赛网络搭建与应用赛项正式赛卷 操作题总分900分,竞赛时长3.5小时 竞赛说明: 1.禁止携带和使用移动存储设备、计算器、通信工具及参考资料。 2.请根据大赛所提供的比赛环境,检查所列的硬件设备、软件及文档清单、…

Java使用POI读取Excel名称管理器

文章目的 本文主要介绍如何使用poi读取到Excel的名称管理器中的内容。并且定位到单元格。 在企业的开发中可能需要通过名称管理器定位到某个单元格,然后在单元格上生成签名。 环境配置 Java:Jdk1.8 poi:5.2.3 maven依赖(pom.xml)&#x…

C语言案例 不重复数字输出--01

题目:有 1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 步骤一:定义程序目标 编写一个C程序,使用1、2、3、4四个数字组成不相同且不重复的三位数,分别显示出来…

从web漏洞到linux权限提升

从web漏洞到linux权限提升 一、Linux系统介绍与使用二、Linux权限说明2.1、文件权限2.2、linux文件、目录权限说明 三、权限提升 一、Linux系统介绍与使用 linux-全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,是基于POSIXI的多用户、多任务…

关于Monkey稳定性测试,这是我看到最详细的文章

通过随机点击屏幕一段时间,看看app会不会崩溃,能不能维持正常运行,这就是稳定性测试。 01、Monkey是什么 Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的…

8.4 作业

1.思维导图 2.判断家目录下,普通文件的个数和目录文件的个数 #!/bin/bash count10 count20 cd ~ for i in $(ls) doif [ -f "$i" ]thencount1$((count11))elif [ -d "$i" ]then count2$((count21))fi done echo $count1 echo $count2 3.输入一…

MySQL数据库免安装版

MySQL数据库免安装 1.安装配置启动 MySQL现在的版本主要分为: 5.x 版本,现在互联网企业中的主流版本,包括:头条、美图、百度、腾讯等互联网公司主流的版本。8.x 版本,新增了一些了窗口函数、持久化配置、隐藏索引等其他功能。所以,我们课程会以常用大版本中最新的版本为…

Camunda BPM Run下载(7.20)

官网地址: https://camunda.com/ 中文站点:http://camunda-cn.shaochenfeng.com https://downloads.camunda.cloud/release/camunda-bpm/run/7.20/https://downloads.camunda.cloud/release/camunda-bpm/run/7.20/camunda-bpm-run-7.20.0-alpha3.ziphttps://downloads.camunda…

科技云报道:震惊!4K、8K画质背后,竟然少不了AI的助力

科技云报道原创。 “对于视频的画质,我现在最低只能够接受720P,最好是1080p。”早五年前,身边就已经有人提出了这样的要求。 随着科技的进步,我们进入了一个视频内容快速增长的时代。从社交媒体到在线教育,从直播购物…