当前位置: 首页 > news >正文

Vue学习笔记-Vue3中ref和reactive函数的使用

前言

为了让vue3中的数据变成响应式,需要使用ref,reactive函数

ref函数使用方式

  • 导入ref函数

    import {ref} from 'vue'
    
  • 在setup函数中,将需要响应式的数据通过ref函数进行包装,修改响应式数据时,需要通过:
    ref包装的响应式对象.value = 修改后的数据这种形式进行修改

    export default {name: 'App',components: {......},setup(){//数据定义let name = ref('张三')let age = ref(18)let job = ref({type:'前端工程师',salary:'30k'})//定义函数function changeInfo(){name.value = '李四'age.value += 1job.value.type = '后端工程师'job.value.salary = '50k'/*console.log(name,age)*/}//setup必须有返回值,将上述定义的响应式数据,以及函数进行返回return {name,age,job,changeInfo}}
    }
    

reactive函数使用方式

  • 导入reactive函数

    import {reactive} from 'vue'
    
  • reactive函数用于处理对象类型以及数组类型的响应式数据(ref处理对象类型的数据也借助了reactive的帮助),并且处理后返回的对象不需要使用.value后缀,用法模板为:
    const 代理对象 = reactive(源对象),该代理对象实质上是Proxy的实例对象

    export default {name: 'App',components: {},setup(){//数据定义/*为了方便起见,可以将之前定义的数据整合到一个对象中,这样即方便管理,也可以统一由reactive函数处理*/let person = reactive({name : '李四',age:18,job:{type:'前端工程师',salary:'60k'},hobbies:['抽烟','喝酒','烫头']})//定义函数function changeInfo(){person.name = '王五'person.age+=1person.job.type='后端工程师'person.job.salary='50k'person.hobbies[0] = '学习'}//setup必须有返回值return {person,changeInfo}}
    }
    

reactive对比ref总结

  • 从定义数据角度对比:
    ref用来定义:基本类型数据
    reactive用来定义:对象或数组类型数据
    备注:ref也可以用来定义对象或数组类型数据,它内部会通过reactive转为代理对象
  • 从原理角度对比:
    ref通过Object.defineProperty()get()set()来实现响应式(数据劫持)
    reactive通过Proxy来实现响应式(数据劫持),并通过Reflect操作源对象内部数据
  • 从使用角度对比:
    ref定义的数据:操作数据需要附带.value,读取数据时,从模板中直接读取,不需要.value
    reactive定义的数据:操作数据与读取数据均不需要.value

相关文章:

Vue学习笔记-Vue3中ref和reactive函数的使用

前言 为了让vue3中的数据变成响应式,需要使用ref,reactive函数 ref函数使用方式 导入ref函数 import {ref} from vue在setup函数中,将需要响应式的数据通过ref函数进行包装,修改响应式数据时,需要通过: ref包装的响应式对象.val…...

大数据分析与应用实验任务十一

大数据分析与应用实验任务十一 实验目的 通过实验掌握spark Streaming相关对象的创建方法; 熟悉spark Streaming对文件流、套接字流和RDD队列流的数据接收处理方法; 熟悉spark Streaming的转换操作,包括无状态和有状态转换。 熟悉spark S…...

“78Win-Vận mệnh tốt”Trang web hỗ trợ kỹ thuật

Chng ti l một phần mềm cung cấp dịch vụ mua hộ xổ số cho người Việt Nam gốc Hoa. Bạn c thể gửi số v số lượng v số cần mua hộ, chng ti sẽ gửi đến tay bạn trước khi mở giải thưởng. Bạn chỉ cần trả tiền offline. Nếu bạ…...

React中使用react-json-view展示JSON数据

文章目录 一、前言1.1、在线demo1.2、Github仓库 二、实践2.1、安装react-json-view2.2、组件封装2.3、效果2.4、参数详解2.4.1、src(必须) :JSON Object2.4.2、name:string或false2.4.3、theme:string2.4.4、style:object2.4.5、…...

一文简述“低代码开发平台”到底是什么?

低代码开发平台到底是什么? 低代码开发平台(英文全称Low-Code Development Platform)是一种基于图形界面、可视化编程技术的开发平台,旨在提高软件开发的效率和质量。它可以帮助开发者快速构建应用程序,减少手动编写代…...

HNU计算机体系结构-实验3:多cache一致性算法

文章目录 实验3 多cache一致性算法一、实验目的二、实验说明三 实验内容1、cache一致性算法-监听法模拟2、cache一致性算法-目录法模拟 四、思考题五、实验总结 实验3 多cache一致性算法 一、实验目的 熟悉cache一致性模拟器(监听法和目录法)的使用&am…...

Go语言学习路线规划

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...

微软NativeApi-NtQuerySystemInformation

微软有一个比较实用的Native接口:NtQuerySystemInformation,具体可以参考微软msdn官方文档:NtQuerySystemInformation, 是一个系统函数,用于收集特定于所提供的指定种类的系统信息。ProcessHacker等工具使用NtQuerySys…...

灵活与高效的结合,CodeMeter Cloud Lite轻云锁解决方案

众多软件开发商日渐认识到,威步推出的一系列尖端软件产品在维护知识产权、精确控制及有效管理软件授权方面发挥着不可或缺的作用。这些产品的核心功能包括将许可证及其他关键敏感数据安全地存储于高端复杂的硬件设备、经过专业加密的文件,或者置于受严格…...

Flink 系列文章汇总索引

Flink 系列文章 一、Flink 专栏 本专栏系统介绍某一知识点,并辅以具体的示例进行说明。 本专栏的文章编号可能不是顺序的,主要是因为写的时候顺序没统一,但相关的文章又引入了,所以后面就没有调整了,按照写文章的顺…...

计算机网络——期末考试复习资料

什么是计算机网络 将地理位置不同的具有独立功能的多台计算机及其外部设备通过通信线路和通信设备连接起来;实现资源共享和数据传递的计算机的系统。 三种交换方式 报文交换:路由器转发报文; 电路交换:建立一对一电路 分组交换&a…...

【数据结构】面试OJ题——链表

目录 1.移除链表元素 思路: 2.反转链表 思路: 3.链表的中间结点 思路: 4.链表中的倒数第K个结点 思路: 5.合并两个有序链表 思路: 6.链表分割 思路: 7.链表的回文结构 思路: 8.随机链表…...

flask web开发学习之初识flask(三)

文章目录 一、flask扩展二、项目配置1. 直接配置2. 使用配置文件3. 使用环境变量4. 实例文件夹 三、flask命令四、模版和静态文件五、flask和mvc架构 一、flask扩展 flask扩展是指那些为Flask框架提供额外功能和特性的库。这些扩展通常遵循Flask的设计原则,易于集成…...

【设计模式-3.1】结构型——外观模式

说明:本文介绍设计模式中结构型设计模式中的,外观模式; 亲手下厨还是点外卖? 外观模式属于结构型的设计模式,关注类或对象的组合,所呈现出来的结构。以吃饭为例,在介绍外观模式之前&#xff0…...

flutter学习-day2-认识flutter

📚 目录 简介特点架构 框架层引擎层嵌入层 本文学习和引用自《Flutter实战第二版》:作者:杜文 1. 简介 Flutter 是 Google 推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart 语言开发 App&#…...

解决selenium使用.get()报错:unknown error: unsupported protocol

解决方法 将原来的: url "https://www.baidu.com" browser.get(url)替换为: url "https://www.baidu.com" browser.execute_script(f"window.location.replace({url});") # 直接平替 .get()问题解析 之前运行都是正…...

关于加密解密,加签验签那些事

面对MD5、SHA、DES、AES、RSA等等这些名词你是否有很多问号?这些名词都是什么?还有什么公钥加密、私钥解密、私钥加签、公钥验签。这些都什么鬼?或许在你日常工作没有听说过这些名词,但是一旦你要设计一个对外访问的接口&#xff…...

容器重启后,Conda文件完整保存(虚拟环境、库包),如何重新安装conda并迁移之前的虚拟环境

Vim安装 容器重启后默认是vi,升级vim,执行命令 apt install -y vim安装 Anaconda 1. 下载Anaconda 其他版本请查看Anaconda官方库 wget https://mirrors.bfsu.edu.cn/anaconda/archive/Anaconda3-2023.03-1-Linux-x86_64.sh --no-check-certificate…...

gitee对接使用

1.创建一个文件夹 2.进入Gitee接受对方项目编辑 3.打开终端初始化一开始创建的文件夹 git init 3.1打开终端 3.2输入git.init 4.克隆对方的项目 4.1进入Gitee复制对方项目的路径 4.2在编辑器终端内克隆对方项目 git clone 网址 如此你的编辑器就会出现对方的项目 …...

C语言中的一维数组与二维数组

目录 一维数组数组的创建初始化使用在内存中的存储 二维数组创建初始化使用在内存中的存储 数组越界 一维数组 数组的创建 数组是一组相同类型元素的集合。 int arr1[10]; char arr3[10]; float arr4[10]; double arr5[10];下面这个数组能否成功创建? int count…...

04_RAGFlow之知识图谱与Text2SQL

RAGFlow之知识图谱与Text2SQL:构建智能检索的双引擎 知识体系结构 RAGFlow技术栈 │ ├── 知识图谱层 │ ├── 实体识别与关系提取(NER Relation Extraction) │ ├── 图谱查询与推理(Graph Query & Reasoning&a…...

Prompt工程进阶:6个技巧提升大模型输出精准度

Prompt工程进阶:6个技巧提升大模型输出精准度 随着大语言模型在代码生成、内容创作、数据分析等场景的渗透率持续提升,开发者和从业者逐渐发现,通用Prompt往往只能得到模糊、冗余甚至偏离需求的输出。如何通过精细化的Prompt设计,…...

LeetCode 1143. Longest Common Subsequence 题解

LeetCode 1143. Longest Common Subsequence 题解 题目描述 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以…...

计算机毕业设计springboot展会门票系统 基于SpringBoot的会展票务数字化服务平台 SpringBoot框架下的博览会入场券预约与核销系统

计算机毕业设计springboot展会门票系统 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着会展经济的蓬勃发展和数字化转型的深入推进,各类展会活动规模不断扩大&am…...

如何设计高效的Emscripten与WebAssembly接口:平衡简洁与完整的终极指南

如何设计高效的Emscripten与WebAssembly接口:平衡简洁与完整的终极指南 【免费下载链接】emscripten Emscripten: An LLVM-to-WebAssembly Compiler 项目地址: https://gitcode.com/gh_mirrors/em/emscripten Emscripten作为一款强大的LLVM-to-WebAssembly编…...

C语言完美演绎6-17

/* 范例&#xff1a;6-17 */#include <stdio.h>#include <conio.h>int main(){int a;printf("请输入你的分数(0-100)");scanf("%d",&a);if(a>0) if(a<100) printf("你输入的分数…...

告别Lottie和SVGA:用Unity给Android应用做高性能动态引导动画的实战踩坑记录

告别Lottie和SVGA&#xff1a;用Unity给Android应用做高性能动态引导动画的实战踩坑记录 在移动应用开发中&#xff0c;动态引导动画一直是提升用户体验的关键元素。从早期的帧动画到后来的Lottie、SVGA等方案&#xff0c;开发者们不断寻求更高效、更灵活的动画实现方式。然而&…...

深度解析ZLUDA:AMD显卡运行CUDA应用的全新解决方案

深度解析ZLUDA&#xff1a;AMD显卡运行CUDA应用的全新解决方案 【免费下载链接】ZLUDA CUDA on AMD GPUs 项目地址: https://gitcode.com/gh_mirrors/zlu/ZLUDA ZLUDA是一个革命性的开源项目&#xff0c;它让AMD显卡能够直接运行未经修改的CUDA应用程序&#xff0c;为AM…...

DeepSeek总结的 PostgreSQL 19:为 UPDATE/DELETE 添加 FOR PORTION OF 子句

原文地址&#xff1a;https://www.depesz.com/2026/04/02/waiting-for-postgresql-19-add-update-delete-for-portion-of/ 等待 PostgreSQL 19&#xff1a;为 UPDATE/DELETE 添加 FOR PORTION OF 子句 2026 年 4 月 1 日&#xff0c;Peter Eisentraut 提交了一个补丁&#xf…...

别再只用L2损失了!手把手教你用PyTorch实现MS-SSIM+L1混合损失,图像修复效果大提升

超越L1/L2&#xff1a;用MS-SSIM混合损失打造专业级图像修复模型 当你在深夜调试一个图像超分辨率模型时&#xff0c;屏幕上的结果让你皱起了眉头——那些应该清晰锐利的边缘却像被水浸湿的水彩画一样模糊不清&#xff0c;而平坦的天空区域则布满了令人不快的颗粒状伪影。这可能…...