Vue3.0组合式API:使用reactive()、ref()创建响应式代理对象

news/2024/9/25 6:07:52/

 Vue3.0组合式API系列文章:

《Vue3.0组合式API:setup()函数》

《Vue3.0组合式API:使用reactive()、ref()创建响应式代理对象》

《Vue3.0组合式API:computed计算属性、watch监听器、watchEffect高级监听器》

《Vue3.0组合式API:使用defineProps()实现父组件向子组件传递数据》

《Vue3.0组合式API:使用defineEmits()实现子组件向父组件传递数据》

《Vue3.0组合式API:生命周期钩子函数》

《Vue3.0组合式API:依赖注入provide和inject实现跨层组件的通信》

《Vue3.0组合式API:使用ref获取DOM元素》

1、reactive() 方法

reactive() 方法用于将定义的 JavaScript 对象转换为响应式对象。

使用方法:

javascript"><script setup>
//第一步:导入函数
import { reactive } from 'vue';//第二步:创建响应式对象
const data = reactive(对象类型的数据);
</script>

【实例】使用 reactive() 方法,创建一个响应式对象,并实现修改响应式对象的值。

<template><fieldset><legend>组件</legend><p>用户名称:{{ userInfo.userName }}</p><p>用户年龄:{{ userInfo.age }}</p><p>博客信息:{{ userInfo.blogName }}</p><p>博客地址:{{ userInfo.blogUrl }}</p><button @click="updateAge">修改年龄</button></fieldset>
</template><script setup>
//第一步:导入函数
import { reactive } from 'vue';//第二步:创建响应式对象,参数为对象
const userInfo = reactive({userName: 'pan_junbiao的博客',age: 0,blogName: '您好,欢迎访问 pan_junbiao的博客',blogUrl: 'https://blog.csdn.net/pan_junbiao'
});//修改年龄方法
function updateAge() {userInfo.age = 36;
}</script>

执行结果:

2、ref() 方法

reactive() 方法可以为一个 JavaScript 对象创建响应式代理,如果需要对象某个基本数据类型(如:数字、字符串)的数据创建响应式代理对象,可以通过 ref() 方法实现。该方法接收一个原始值作为参数(也支持对象类型),返回一个响应式的对象,该对象只有一个 value 属性值指向内部值。

使用方法:

<script setup>
//第一步:导入函数
import { ref } from 'vue';//第二步:创建响应式对象
const data = ref(基本数据类型 或 对象类型);
</script><template><!-- 第三步:使用响应式对象 --><p>{{ data }}</p>
</template>

【实例】使用 ref() 方法,创建一个响应式对象,并实现一个计数器功能。

<template><fieldset><legend>组件</legend><!-- 第三步:使用响应式对象 --><p>计数结果:{{ count }}</p><button @click="counter">计数器</button></fieldset>
</template><script setup>
//第一步:导入函数
import { ref } from 'vue';//第二步:创建响应式对象
const count = ref(0);// 增加计数的方法
function counter() {//注意:使用响应式对象的.value属性,获取内部值count.value++;
}
</script>

 执行结果:

说明:

如果将 ref() 方法创建的响应式代理对象作为属性返回,那么在模板中访问时不需要添加 .value 属性。

3、reactive 与 ref 的区别

reactive() 方法与 ref() 方法都可以用于创建响应式代理对象。但它们之间存在着以下几点区别:

  1. reactive() 方法的参数,必须是对象类型。
  2. ref() 方法参数可以是基本数据类型,也可以是对象类型。
  3. ref() 方法创建的响应式对象,必须通过 .value 属性访问。
  4. ref() 方法的内部实现依赖于 reactive() 方法。

在实际的项目开发中,推荐使用 ref() 方法,因为更加灵活。


http://www.ppmy.cn/news/1530158.html

相关文章

Apache Doris 实践

Apache Doris 实践 官方使用指南&#xff1a;https://doris.incubator.apache.org/zh-CN/docs/install/source-install/compilation-with-docker/ 手动安装 下载二进制安装包https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.1.5-bin-x64.tar.gz …

构建高可用和高防御力的云服务架构第一部分:深入解析DDoS高防(1/5)

引言 在数字化时代&#xff0c;网络安全已成为全球关注的焦点。随着互联网技术的快速发展和应用的广泛深入&#xff0c;网络安全形势日益严峻。特别是分布式拒绝服务&#xff08;DDoS&#xff09;攻击&#xff0c;以其破坏性强、难以防范的特点&#xff0c;对个人、企业乃至国…

系统架构师-面向服务架构(SOA)全解

1、为什么需要SOA架构 1.1 系统集成问题 异构系统整合 例如&#xff0c;一个企业可能同时拥有用 Java 开发的企业资源规划&#xff08;ERP&#xff09;系统、用 C# 开发的客户关系管理&#xff08;CRM&#xff09;系统以及用 Python 开发的数据分析系统。通过 SOA&#xff0…

实例展示Spring的作用以及如何使用

Spring 是一个广泛应用于 Java 开发的开源框架&#xff0c;它主要有以下几个重要作用&#xff1a; 一、依赖注入&#xff08;Dependency Injection&#xff09; 作用&#xff1a; 解耦组件之间的依赖关系&#xff0c;使得代码更易于维护和测试。比如在一个 Web 应用中&#xff…

c++难点核心笔记(二)

系列文章目录 c难点&核心笔记(一) 继续接着上一章记录的重点内容包括函数&#xff0c;类和对象&#xff0c;指针和引用&#xff0c;C对象模型和this指针等内容&#xff0c;继续给大家分享&#xff01;&#xff01; 文章目录 系列文章目录友元全局函数做友元类做友元成员函…

Oracle数据库安装与SQL*Plus使用

一、实验过程 1、安装完数据库服务器程序后&#xff0c;查看系统服务启动状况并截图。 2、启动 SOL Plus工具,分别以SYS用户和 SYSTEM用户登录数据库&#xff0c;并解锁scott用户&#xff0c;用scott用户登录。每次登录完成后用show user命令查看当前用户&#xff0c;并截图。…

用 Pygame 实现一个乒乓球游戏

用 Pygame 实现一个乒乓球游戏 伸手需要一瞬间&#xff0c;牵手却要很多年&#xff0c;无论你遇见谁&#xff0c;他都是你生命该出现的人&#xff0c;绝非偶然。若无相欠&#xff0c;怎会相见。 引言 在这篇文章中&#xff0c;我将带领大家使用 Pygame 库开发一个简单的乒乓球…

【自动化测试】Appium Server如何安装和Appium Server安装困难的原因和解决方法以及常见的一些安装失败的错误和解决方法

引言 Appium Server安装过程时常出现问题&#xff0c;以下是安装Appium Server过程一些原因、常见错误和解决方法 文章目录 引言一、Appium Server如何安装1.1 Node.js 安装1.2 使用NPM安装Appium1.3 验证Appium安装1.4 运行Appium Server1.5 使用Appium Desktop&#xff08;可…