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

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

 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 对象转换为响应式对象。

使用方法:

<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.lryc.cn/news/442159.html

相关文章:

  • kubernetes调度2
  • Android中如何处理运行时权限?
  • 【PyCharm】PyCharm:让开发者效率倍增的编程利器
  • Spring Boot- 配置中心问题
  • 字符串专题-1
  • Unsupervised Deep Representation Learning for Real-Time Tracking
  • 第二讲 数据结构
  • docker部署excalidraw画图工具
  • 5G技术对IT行业的影响及未来发展
  • 字节跳动的微服务独家面经
  • 嵌套函数的例子(TypeScript)
  • 0915,SOCKET网络编程部分,三种I/O多路复用模型(select ,poll,epoll)
  • HarmonyOS 应用获取公钥和 MD5 指纹签名信息
  • 封装一个录音声音振动效果的组件
  • Java、JS与Go的扩展操作符,揭秘它们的‘魔法’!
  • ROS学习笔记13——rosbag功能包的简单使用
  • Python Flask网页开发基本框架
  • Mybatis-plus进阶篇(五)
  • 交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
  • 【QT】定时器使用
  • 虚拟机:3、(待更)WSL2安装Ubuntu系统+实现GPU直通
  • CSP-J2024年全真模拟题 阅读程序篇2
  • 几种手段mfc140u.dll丢失的解决方法,了解mfc140u.dll
  • Scrapy爬虫框架 Spider Middleware 爬虫页中间件
  • localectl 命令:系统语言、键盘布局和区域设置
  • 《微信小程序实战(3) · 推广海报制作》
  • SS-MUSIC
  • Spring Cloud Gateway组件
  • 激发AI创造力:掌握Prompt提示词的高效提问方法
  • 江科大笔记—STM32课程简介