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

Vue3-03-reactive() 响应式基本使用

reactive() 的简介

reactive() 是vue3 中进行响应式状态声明的另一种方式;
但是,它只能声明 【对象类型】的响应式变量,【不支持声明基本数据类型】。reactive() 与 ref() 一样,都是深度响应式的,即对象嵌套属性发生了改变,页面中都会重新刷新。reactive() 声明的对象变量,可以直接使用它的属性值,无需像 ref() 一样使用 [.value] 的方式读取变量的值。reactive()  函数返回的是对象的一个代理对象,这个代理对象可以直接操作属性,且这个代理对象是唯一的,
即 同一个对象 多次调用 reactive() 函数,返回的是同一个代理对象。reactive() 对象解构之后的属性,不具有响应式。reactive() 对象的值单独传入函数中作为参数时,不具有响应式。

基本使用案例

<template><div>stu: {{ stu }}<br>numList : {{ numList }}</div>
</template><script setup lang="ts">// 引入 reactiveimport {reactive} from "vue"// 声明响应式状态 : 必须是一个对象类型const stu = reactive({id:'001',name:'小明',classInfo:{classId:1001,className:'开心一班',}})const numList = reactive([1,2,3,4])// 打印一下 响应式的变量,直接打印,无需使用 【.value】 进行值的获取console.log('stu : ',stu)console.log('numList : ',numList)</script><style scoped>
</style>

在这里插入图片描述

reactive() 添加数据类型限制

官方提示 :不推荐 给 reactive() 使用泛型的方式进行类型限制!

方式一 : 自动类型推导

这也是ts的自有特性,因为 reactive() 是封装对象的,所以,自动类型推导也会推导为一个对象类型。
	// 会自动推导为 {name:string} 类型const job = reactive({name:'程序员'})console.log('job',job)

在这里插入图片描述

方式二 :显示的标注类型

如果想给reactive() 添加类型,笔者比较推荐这种方式,
这样程序代码比较清晰,可维护性更高。可以通过自己定义 接口的方式,进行类型的标注。
这个就纯纯的是ts的知识点了。
    // 声明一个接口,作为数据类型规范interface Job{name:string}// 显式的指定变量的类型const job : Job = reactive({name:'程序员'})console.log('job',job)

在这里插入图片描述

http://www.lryc.cn/news/261053.html

相关文章:

  • OpenAI开源超级对齐方法:用GPT-2,监督、微调GPT-4
  • TeeChart.NET 2023.11.17 Crack
  • 计算机网络常见的缩写
  • vue cli 脚手架之配置代理
  • STM32启动流程详解(超全,startup_stm32xx.s分析)
  • 小程序接口OK,桌面调试接口不行
  • 【贪心】LeetCode-406. 根据身高重建队列
  • 【C++11特性篇】C++11中新增的initializer_list——初始化的小利器
  • springboot(ssm宠物美容机构CRM系统 宠物服务商城系统Java系统
  • LSTM 双向 Bi-LSTM
  • 2024测试开发面试题完整版本(附答案)
  • MySQL作为服务端的配置过程与实际案例
  • Appium 自动化自学篇 —— 初识Appium自动化!
  • Linux基本操作指令
  • 探索SD-WAN技术对传统制造业实现智能制造的作用
  • C++基础-this指针详解
  • 如何一键生成多个文件二维码?批量文件二维码制作技巧
  • SQL连续
  • sql server导出与导入
  • DevEco Studio 项目鸿蒙(HarmonyOS)资源引用(自定统和系统)
  • 使用国内镜像源安装opencv
  • 人工智能与大数据的紧密联系
  • macbookpro 2024怎么恢复出厂设置
  • Linux系统编程(二):标准 I/O 库(下)
  • Mr. Cappuccino的第65杯咖啡——MacOS安装Docker
  • 解决 Docker Hub 国内无法访问的方法(Docker 镜像下载加速)
  • (第61天)多租户架构(CDB/PDB)
  • 【自定义Source、Sink】Flink自定义Source、Sink对ClickHouse进行读和批量写操作
  • linux 查看服务启动时间
  • [RK-Linux] 移植Linux-5.10到RK3399(六)| 检查GMAC(RTL8211F)配置使能千兆以太网