Vue3.0-Ref

一、值类型与引用类型

1.1 定义和说明

在JavaScript中,数据类型可以分为两类:值类型(或基本数据类型)和引用类型。

值类型(基本数据类型):

  • undefined

  • null

  • boolean

  • number

  • string

  • symbol(ES6 新增)

引用类型:

  • Object

  • Array

  • Function

  • Date

  • RegExp

值类型和引用类型的主要区别在于它们在内存中的存储方式不同:

1、值类型:存储在栈内存中,每个变量拥有一个独立的内存空间,并且存储的是数据本身。

2、引用类型:存储在堆内存中,变量存储的是数据的引用地址,真实的数据存储在堆内存中。

下面是一个简单的例子来说明这两种类型的区别:

// 值类型示例
let a = 10;
let b = a;
b = 20;
console.log(a); // 输出 10,因为a仍然是10// 引用类型示例
let obj1 = new Object();
obj1.name = 'John';let obj2 = obj1;
obj2.name = 'Jane';console.log(obj1.name); // 输出 'Jane',因为obj1和obj2指向同一个对象

在上面的例子中,a是一个值类型变量,改变b的值不会影响a。而obj1obj2是引用类型变量,改变obj2的属性会影响obj1,因为它们引用的是同一个对象实例。 

1.2 区别:

值类型:

1、占用空间固定,保存在栈中(当一个方法执行时,每个方法都会建立自己的内存栈,在这个方法内定义的变量将会逐个放入这块栈内存里,随着方法的执行结束,这个方法的内存栈也将自然销毁了。因此,所有在方法中定义的变量都是放在栈内存中的;栈中存储的是基础变量以及一些对象的引用变量,基础变量的值是存储在栈中,而引用变量存储在栈中的是指向堆中的数组或者对象的地址,这就是为何修改引用类型总会影响到其他指向这个地址的引用变量。)

2、保存与复制的是值本身

3、使用typeof检测数据的类型

4、基本类型数据是值类型

引用类型:

1、占用空间不固定,保存在堆中(当我们在程序中创建一个对象时,这个对象将被保存到运行时数据区中,以便反复利用(因为对象的创建成本通常较大),这个运行时数据区就是堆内存。堆内存中的对象不会随方法的结束而销毁,即使方法结束后,这个对象还可能被另一个引用变量所引用(方法的参数传递时很常见),则这个对象依然不会被销毁,只有当一个对象没有任何引用变量引用它时,系统的垃圾回收机制才会在核实的时候回收它。)

2、保存与复制的是指向对象的一个指针

3、使用instanceof检测数据类型

4、使用new()方法构造出的对象是引用型

二、ref介绍

在Vue 3.0中,ref是一个函数,用来创建一个响应式的引用对象(reactive reference),可以用来跟踪单个响应式值。使用ref的主要目的是在组件中保存状态。

没有ref的话,你可以直接使用响应式变量,但是在组件外部无法获取到这个变量的响应式特性。

下面是使用ref的例子:

<template><div>{{ count }}</div><button @click="increment">Increment</button>
</template><script>
import { ref } from 'vue';export default {setup() {const count = ref(0);function increment() {count.value++;}return { count, increment };}
}
</script>

在上面的例子中,count是一个响应式引用对象,通过.value属性访问实际的值,并在点击按钮时增加计数。如果没有使用ref(),那么count仅仅是一个普通的JavaScript基本类型,无法保持响应式。

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

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

相关文章

正则表达式和lambda表达式

正则表达式&#xff08;Regular Expressions&#xff09;和Lambda表达式虽然都包含“表达式”一词&#xff0c;但它们在编程中的作用和用法是完全不同的。让我们详细比较一下它们的定义、用途和应用场景&#xff1a; 正则表达式 定义&#xff1a;正则表达式是一种用于匹配文本…

人工智能AI聊天chatgpt系统openai对话创作文言一心源码APP小程序功能介绍

你提到的是一个集成了多种智能AI创作能力的系统&#xff0c;它结合了OpenAI的ChatGPT、百度的文言一心&#xff08;ERNIE Bot&#xff09;以及可能的微信WeLM&#xff08;或其他类似接口&#xff09;等。这样的系统确实能够极大地提高创作效率&#xff0c;并且在各种场景下为用…

Rust Web开发框架actix-web入门案例

概述 在看书的时候&#xff0c;用到了actix-web这个框架的案例。 书里面的版本是1.0&#xff0c;但是我看官网最新都4.4了。 为了抹平这种信息差&#xff0c;所以我决定把官方提供的示例代码过一遍。 核心代码 Cargo.toml [package] name "hello" version &q…

VueRouter使用总结

VueRouter 是 Vue.js 的官方路由管理器&#xff0c;用于构建单页面应用&#xff08;SPA&#xff09;。在使用 VueRouter 时&#xff0c;开发者可以定义路由映射规则&#xff0c;并在 Vue 组件中通过编程式导航或声明式导航的方式控制页面的跳转和展示。以下是 VueRouter 使用的…

随笔:贝特弹琴

半年前&#xff0c;我买了一架朗朗代言的智能电子琴。所谓智能是指&#xff0c;它配套的手机软件知道你在按哪个键&#xff0c;它还能让任意按键发光。用专业术语说&#xff0c;它的键盘具有输入和输出功能&#xff0c;和软件组合起来是一个完整的计算机系统。 随着软件练习曲…

使用Postman来调用Salesforce Bulk API 2.0的方法

简介 Bulk API 2.0 可以支持大量数据增删改查&#xff0c; 用新版的Dataloader也可以进行访问&#xff0c;但Dataloader会把CSV里的数据先转成Bean对象&#xff0c;这样会耗费大量的时间&#xff0c;而且数据量过大会卡死&#xff0c;所以直接上传CSV会节省大量时间和避免卡死风…

关于电源1

电源的定义 广义定义&#xff1a;电源是将其它形式的能转换成电能的装置。 例如&#xff1a;发电机&#xff1a;将热能、水能、风能、核能、光照、震动等转化为电能的装置。 电池&#xff1a;将化学能转换为电能。 狭义定义&#xf…

每天认识新职业——程序员

一、程序员是什么 程序员是从事程序开发、程序维护的基层工作人员。一般将程序员分为程序设计人员和程序编码人员&#xff0c;但两者的界限并不非常清楚。随着互联网的不断普及&#xff0c;网络上把男程序员称作“程序猿"&#xff0c;女程序员称作“程序媛"。或统称…

Java进阶11 IO流、功能流

Java进阶11 IO流-功能流 一、字符缓冲流 字符缓冲流在源代码中内置了字符数组&#xff0c;可以提高读写效率 1、构造方法 方法说明BufferedReader(new FileReader(文件路径))对传入的字符输入流进行包装BufferedWriter(new FileWriter(文件路径))对传入的字符输出流进行包装…

电子商务电商数据采集接口||电子商务市场数据采集方法,你学到了吗?

小刘从某职业院校电子商务专业毕业后&#xff0c;-直在某品牌电商部负责运营工作&#xff0c;近期&#xff0c;同班同学小王邀请小刘加入创业大军&#xff0c;共同开设网店&#xff0c;销售家乡的螃蟹、鲜虾、扇贝等生鲜水产。 运营经验丰富的小刘决定&#xff0c;在创业开始前…

java处理视频

文章目录 JCodecXuggle(已被弃用)FFmpegjavacvjave经过调研,目前市面上主流的有以下几种: JCodec 优势: 简单。不提供视频编辑或录制功能。缺点: 只能通过File的方式获取视频信息,无法通过url方式获取无法转为M3U8格式使用: <dependency><groupId>org.jc…

IT工具集项目

网址 https://github.com/CorentinTh/it-tools?tabreadme-ov-file 类似的项目应该有很多&#xff0c;提供各种it人员的小工具

SDN 实现 vxlan隧道

SDN vxlan隧道 官方介绍&#xff1a; VXLAN&#xff08;Virtual eXtensible Local Area Network&#xff0c;虚拟扩展局域网&#xff09;&#xff0c;是由IETF定义的NVO3&#xff08;Network Virtualization over Layer 3&#xff09;标准技术之一&#xff0c;是对传统VLAN协议…

电子商务员考试题库(二)

21&#xff0e;物流活动实际上就是我们常说的储运业。〔〕 22. 电子商务不仅要求物流管理人员既具有较高的物流管理水平&#xff0c;而且也要求物流管理员要具有较 高的电子商务知识&#xff0c;并在实际的动作过程中&#xff0c;能有效地将二者有机地结合在一起。〔 √ 〕 …

环境工程设计专项资质乙级如何升甲级

环境工程设计专项资质乙级升甲级的流程和要求可能因地区和具体规定而有所不同&#xff0c;但一般来说&#xff0c;以下是一些常见的步骤和要求&#xff1a; 前期准备&#xff1a; 资质自查&#xff1a;首先&#xff0c;企业需要确认自身是否已经满足甲级资质的各项基本条件&…

行业早报5.15

1.宏达电&#xff08;HTC&#xff09;4 月营收新台币 1.73 亿元&#xff0c;同比减少 42.4%&#xff1b; 2.TCL 实业 2023 年营收突破 1200 亿元&#xff0c;同比增长 13%&#xff1b; 3.乘联会&#xff1a;初步统计 4 月乘用车市场零售 158.5 万辆&#xff0c;同比下降 2%&…

c语言字符数组的一些操作

获取数组的实际长度和数组的总长度 #include <getopt.h> #include <stdio.h> #include <stdlib.h>#define MAX_PATH 256 char filename[MAX_PATH 5]; int main(int argc, char** argv) {const char* optarg "xuhaitao";strcpy(filename, op…

中途离开项羽投奔刘邦的那些名将谋臣,最后的结果怎么样?

刘邦夺取天下后&#xff0c;说&#xff1a;我自己没什么能力&#xff0c;之所以击败项羽&#xff0c;都是大家的功劳。带兵横扫强敌&#xff0c;我不如韩信&#xff1b;筹措粮草物资&#xff0c;源远不断地给前线供应粮饷&#xff0c;我不如萧何&#xff1b;坐在帐中&#xff0…

地平线旭日X3开发板编译USB网卡驱动 AX88772B

由于使用的激光雷达是网口输出的&#xff0c; 为了不占用X3派已有的网口&#xff0c;接上去了一个绿联的usb网卡&#xff0c; 发现系统没有驱动&#xff0c;所以动手看看能不能自己编译一个 首先lsusb查看一下网卡型号 发现型号是AX88772B&#xff0c;去官网看了一下&#x…

记录用python跑csdn点赞接口

代码如下 # 导入request包 import requests # 请求URL URL3https://blog.csdn.net//phoenix/web/v1/article/like # 入参 data3{articleId:109552419} # 请求头 headers3{cookie:uuid_tt_dd10_30308678820-1713771851124-190368; loginbox_strategy%7B%22taskId%22%3A349%2C%2…