Vue3中reactive, onMounted, ref,toRaw,conmpted 使用方法

news2024/9/23 17:25:26

import { reactive, onMounted, ref,toRaw,conmpted } from 'vue'; 

vue3中 reactive ,ref , toRaw,watch,conmpted 用法

toRaw 返回原响应式对象

用法: const rowList = toRaw(row)

reactive:ref:

 ref和reactive都是Vue.js 3.x版本中新增的响应式API,用于实现组件的数据响应式更新。

1. 数据类型不同:ref用于包装JavaScript基本类型的数据(如字符串、数字、布尔值等),而reactive可以用于包装JavaScript对象和数组等复杂类型的数据。


2. 使用方式不同:ref需要通过在模板中使用ref指令以及在JavaScript代码中使用ref函数进行创建和使用,而reactive则需要通过调用Vue.js提供的reactive函数进行包装和创建。


3. 访问方式不同:对于通过ref函数创建的响应式数据,我们可以通过.value属性来访问其实际值;而对于通过reactive函数创建的响应式对象,我们可以直接访问其属性或调用其方法。


4. 设计理念不同:ref主要是为了解决单一元素/数据的响应式问题,而reactive则是为了解决JavaScript对象和数组等复杂数据结构的响应式问题。

 reactive使用方式:

const tableData = reactive<any>([])

const tableData = reactive<any>([])

// 初始化表格数据
const getTableData = async () => {
  try {
    loading.value = true
    const res = await getSystemConfigsList()
    for (let index = 0; index < res.length; index++) {
      tableData.push(res[index])
    }
    loading.value = false
  } catch (e) {
    console.log(e);

  }
};

 

 ref使用方式:数组对象不建议使用ref

const tableData = ref<any>([])

// 初始化表格数据
const getTableData = async () => {
  try {
    loading.value = true
    const res = await getSystemConfigsList()

      tableData.value = res
    
    loading.value = false
  } catch (e) {
    console.log(e);

  }
};

watch使用方法:

watch(() => state.identifyCode, (newVal, oldValue) => {
 console.log(newVal)
})

watch(tableData, (newVal, oldValue) => {
  console.log(newVal)
})
  • 第一种方式 watch(() => state.identifyCode, ...) 监听的是 state.identifyCode 属性的变化。当 state.identifyCode 发生改变时,回调函数将被触发。这种方式适用于监听某个响应式对象的特定属性的变化。

  • 第二种方式 watch(tableData, ...) 监听的是 tableData 变量本身的变化。如果 tableData 是一个 ref 对象或 reactive 对象,那么当它的值发生改变时,回调函数将被触发。这种方式适用于监听整个对象或数据源本身的变化。

  • computed使用方法

  • const setTransitionName = computed(() => {
    	return themeConfig.value.animation;
    });

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

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

相关文章

Microsoft Office 2019 for Mac:提升工作效率的必备办公软件套装

在现代社会&#xff0c;办公软件已经成为我们工作生活中不可或缺的一部分。作为全球领先的办公软件品牌&#xff0c;Microsoft Office 2019 for Mac&#xff08;Office全家桶&#xff09;凭借其强大的功能和稳定性&#xff0c;成为了无数Mac用户提升工作效率的首选。 首先&…

教资成绩什么时候出来 2023教资笔试成绩查询时间介绍

上半年教资笔试成绩查询开放时期为2023年4月13日&#xff0c;面试成绩查询开放时间在6月14日。而下半年教资笔试成绩查询开放时间为2023年11月8日&#xff0c;2023下半年教资面试时间是2023年12月9日-10日。 值得一提的是如果考生对成绩有异议的话&#xff0c;还可以在成绩公布…

Python操作Hive数据仓库

Python连接Hive 1、Python如何连接Hive&#xff1f;2、Python连接Hive数据仓库 1、Python如何连接Hive&#xff1f; Python连接Hive需要使用Impala查询引擎 由于Hadoop集群节点间使用RPC通信&#xff0c;所以需要配置Thrift依赖环境 Thrift是一个轻量级、跨语言的RPC框架&…

LeetCode-496-下一个更大元素

题目描述&#xff1a; 题目链接&#xff1a;LeetCode-496-下一个更大元素 解题思路&#xff1a; 方法一&#xff1a;暴力 方法二&#xff1a;单调栈 方法一代码实现&#xff1a; class Solution {public int[] nextGreaterElement(int[] nums1, int[] nums2) {// 最笨的方法&am…

京东数据报告:2023年儿童面膜行业数据分析

如今&#xff0c;儿童面膜在不少家长群体中受到追捧。有的家长称自家孩子3岁开始敷面膜&#xff0c;而在某电商平台上&#xff0c;一位母婴博主称自己的女儿才2岁&#xff0c;“已经深知护肤的重要性了&#xff0c;每天洗完澡就嚷嚷着要敷面膜”。 而从市场角度看&#xff0c;…

Godot 添加Nuget 引用

前言 我的Godot 专栏 我在之前的文章中&#xff0c;解决了Visual Studio 如何去调试正在运行的Godot 程序。Godot 对于C# 的支持只剩下一个&#xff0c;那就是Nuget 添加。 Godot VisualStudio外部编辑器设置 添加Nuget Nuget 添加还是非常的容易的。我们直接添加一个最常用的…

(5)SpringMVC处理携带JSON格式(“key“:value)请求数据的Ajax请求

SpringMVC处理Ajax 参考文章数据交换的常见格式,如JSON格式和XML格式 请求参数的携带方式 浏览器发送到服务器的请求参数有namevalue&...(键值对)和{key:value,...}(json对象)两种格式 URL请求和表单的GET请求会将请求参数以键值对的格式拼接到请求地址后面form表单的P…

使用wireshark解析ipsec esp包

Ipsec esp包就是ipsec通过ike协议协商好后建立的通信隧道使用的加密包&#xff0c;该加密包里面就是用户的数据&#xff0c;比如通过的语音等。 那么如何将抓出来的esp包解析出来看呢&#xff1f; 获取相关的esp的key信息. 打开wireshark -> edit->preferences 找到pr…

[Machine learning][Part4] 多维矩阵下的梯度下降线性预测模型的实现

目录 模型初始化信息&#xff1a; 模型实现&#xff1a; 多变量损失函数&#xff1a; 多变量梯度下降实现&#xff1a; 多变量梯度实现&#xff1a; 多变量梯度下降实现&#xff1a; 之前部分实现的梯度下降线性预测模型中的training example只有一个特征属性&#xff1a…

ESPHome如何调用别的.yaml文件

在.yaml文件中,一般都需要填写wifi部分的信息 wifi:networks:- ssid: "1234"password: "123456789"- ssid: "abcd"password: "123456789"# 当连接不上指定wifi,开启热点配网ap:ssid: "设备配网"当你有很多设备的时候,WiFi信…

Linux相关概念及常见指令

注意&#xff1a;本篇博客除了讲解Linux的相关指令&#xff0c;还穿插着Linux相关概念及原理的讲解。 账号相关指令 whoami:查看当前用户 adduser 用户名: 添加新用户 passwd 用户名&#xff1a;为这个用户设置密码 ls指令 1.Linux中文件的理解 文件是Linux中存储数据的基本单…

Android Termux安装MySQL,并使用cpolar实现公网安全远程连接[内网穿透]

文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 Android作为移动设备&#xff0c;尽管最初并非设计为服务器&#xff0c;但是随着技术的进步我们可以将Android配置为生产力工具&#xff0c;变成一个随身…

微软坚持Rust语言重写 Windows 11核心

近日微软 Azure首席技术官发文&#xff0c;公开微软最近宣布“扩大采用 Rust 语言的成果”&#xff0c;微软同时还在GitHub 中发布了一系列开发工具包&#xff0c;从而可以帮助开发者使用 Rust语言来编写 Windows 驱动程序。 实际上&#xff0c;早在 2019 年7月&#xff0c;微…

TestNG学会了,Java单元测试你就掌握了一半!

01、TestNG 01、简介 在日常测试工作中&#xff0c;经常需要用写代码和脚本来完成一些测试任务&#xff0c;比如自动化测试&#xff0c;接口测试&#xff0c;单元测试等。当写完若干脚本后&#xff0c;需要对这些脚本进行组织、管理和结果统计&#xff0c;这个时候就需要有一…

三维模型3DTile格式轻量化的跨平台兼容性问题分析

三维模型3DTile格式轻量化的跨平台兼容性问题分析 三维模型3DTile格式是一种开放的、高效的和互操作的空间信息数据格式。然而&#xff0c;它作为一种新兴的技术&#xff0c;其在轻量化与跨平台兼容性方面存在着一些问题。 首先&#xff0c;由于3DTile格式主要针对大型三维场景…

JVM面试题:(一)类加载机制和双亲委派

类加载过程&#xff1a; 常量池符号引用解析为直接引用&#xff1f; 符号引用包括了下面三类常量&#xff1a; 类和接口的全限定名&#xff0c;字段的名称和描述符&#xff0c;方法的名称和描述符 直接引用可以是直接指向目标的指针、相对偏移量或是一个能间接定位到目标的句柄…

antd的upload上传组件,上传成功后清除表单校验——基础积累

今天在写后台管理系统时&#xff0c;发现之前的一个bug&#xff0c;就是antd的upload上传组件&#xff0c;需要进行表单校验。 直接上代码&#xff1a; 1.html部分 <a-form-modelref"ruleForm":model"form":label-col"labelCol":wrapper-col…

轻量限制流量?阿里云轻量应用服务器月流量包收费说明

阿里云轻量应用服务器部分套餐限制月流量&#xff0c;轻量应用服务器按照套餐售卖&#xff0c;有的套餐限制月流量&#xff0c;有的不限制流量。像阿里云轻量2核2G3M带宽轻量服务器一年108元和轻量2核4G4M带宽一年297.98元12个月&#xff0c;这两款是不限制月流量的。阿里云百科…

c语言练习题82:顺序表的使用

顺序表的使用 1、顺序表的概念及结构 线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是⼀种在实际中⼴泛使 ⽤的数据结构&#xff0c;常⻅的线性表&#xff1a;顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性…

基于工业5G网关的工业机器人监测控制方案

随着智能制造、自动化生产的发展进步&#xff0c;工业机器人的身影越来越多地出现在工厂现场&#xff0c;成为新型无人化、智能化生产制造的中坚力量。 工业机器人的运行伴生着海量的数据采集、传输、分析和反馈执行&#xff0c;因此也需要高速、低延迟的5G网络&#xff0c;支撑…