Vue3 reative回显问题

1. reactive

在做项目的时候通常会遇到这种情况,比如我们有一个 Table 显示数据,添加 Table 数据的时候使用 dialog 弹出,在里面填写字段然后添加。

vue3 中,对于对象的响应式定义推荐使用 reactive ,那么可以写入如下代码:

const dialogRuleForm = reactive({title: "",status: "",author: "",
});

2. 添加编辑功能

现在添加一个新功能:编辑,我希望添加和编辑使用同一个 dialog, 毕竟两者字段相同,使用数据赋值即可。

fetchApi({id: row.id})
.then((res) => {dialogRuleForm = res.data;
})

会发现,这样赋值不会产生效果,那么怎么修改呢。

3. 修改

有三种方法:

  1. 使用 ref,把 reactive 改成 ref,如下:
const dialogRuleForm = ref({title: "",status: "",author: "",
});fetchApi({id: row.id})
.then((res) => {dialogRuleForm.value = res.data;
})

千万别忘记,ref 后面要用 .value, 建议使用 vscode 的 volar 插件,勾选 ref sugar.

  1. 接着使用 reactive, 不过用一个 key 值代表,如下:
const dialogRuleForm = reactive({value: {title: "",status: "",author: "",},
});fetchApi({id: row.id})
.then((res) => {dialogRuleForm.value = res.data;
})

好像和 ref 在使用上没区别。

  1. 使用 Object.assign(), 如下: 
const dialogRuleForm = reactive({title: "",status: "",author: "",
});fetchApi({id: row.id})
.then((res) => {// 如果 res.data 是一个对象Object.assign(dialogRuleForm,  res.data);// 如果 res.data 是一个数组Object.assign(dialogRuleForm,  {...res.data});
})
  1. 小技巧
    如果使用同一个 dialog 组件,当关闭 dialog 时,需要清空组件内的数据,如果你的字段过多,就会变成如下情况:
Object.assign(dialogRuleForm, {xxx: "",xxx: "",...
});

这样写的很累,我们可以在定义 reactive 数据的时候再定义一个 reset, 如下:

使用的时候直接将这个空对象直接拷贝给新对象  相当于重置效果了

const resetForm = reactive({ ...dialogRuleForm });

这样清空数据的时候就可以这样使用:

const resetForm= reactive({title: "",status: "",author: "",
});
Object.assign(dialogRuleForm, resetForm);

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

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

相关文章

运筹学经典问题(二):最短路问题

问题描述 给定一个图(有向图或无向图) G ( V , E ) G (V, E) G(V,E), V V V是图中点的集合, E E E是图中边的集合,图中每条边 ( i , j ) ∈ E (i, j) \in E (i,j)∈E都对应一个权重 c i j c_{ij} cij​(…

Android取消深色适配

从Android10(API 29)开始,在原有的主题适配的基础上,Google开始提供了Force Dark机制,在系统底层直接对颜色和图片进行转换处理,原生支持深色模式。当系统设置深色主题背景或者进入省电模式情况下会进入深色…

2023年烟花爆竹经营单位主要负责人证模拟考试题库及烟花爆竹经营单位主要负责人理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2023年烟花爆竹经营单位主要负责人证模拟考试题库及烟花爆竹经营单位主要负责人理论考试试题是由安全生产模拟考试一点通提供,烟花爆竹经营单位主要负责人证模拟考试题库是根据烟花爆竹经营单位主要负责人…

C++ STL容器概览

容器概览 容器分类 顺序容器提供对元素(半开)序列的访问。 vectorlistforward_listdeque 关联容器提供基于关键字的关联查询。 有序关联容器:通常用平衡二叉树(红黑树)实现。 mapmultimapsetmultiset 无序关联容器&a…

NestJS使用gRPC实现微服务通信

代码仓库地址:https://github.com/zeng-jc/rpc-grpc-practice 1.1 基本概念 gRPC 基于 Protocol Buffers(protobuf)作为接口定义语言(IDL),意味着你可以使用 protobuf 来定义你的服务接口,gRP…

【HDFS面试】HDFS面试题答案

题目 HDFS文件写入和读取流程 HDFS组成架构 介绍下HDFS,说下HDFS优缺点,以及使用场景 HDFS作用 HDFS的容错机制 HDFS的存储机制 HDFS的副本机制 HDFS的常见数据格式,列式存储格式和行存储格式异同点,列式存储优点有哪些? …

【环境搭建】Win10下安装Docker

下载地址 Docker Windows 桌面版下载地址 各镜像下载地址 可能遇到的问题 安装后一直显示以下文字 Starting the Docker Engine… Docker Engine is the underlying technology that runs containers 请尝试使用此方法:https://zhuanlan.zhihu.com/p/667495068

RGB颜色表示法(RGBA解释) 以及常见的色调

RGB:代表red,green,blue。即用这三个色调表示所有颜色。 表示方式如:(255,255,255)白色、(0,0,0)黑色 改变三个不同的数值可以得到不同的颜色,数值取值范围为0-255&#…

【shell脚本实战案例】awk实现行转列数据变换

问题背景: awk(“Aho, Weinberger, and-Kernighan”) 是一种文本处理工具,用于从输入文件中提取并输出指定的信息。它以行为单位读取文件,并根据用户定义的模式和操作来处理每一行数据。 awk命令是一种强大的编程语…

设计模式——模板方法模式

引言 模板方法模式是一种行为设计模式, 它在超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。 问题 假如你正在开发一款分析公司文档的数据挖掘程序。 用户需要向程序输入各种格式 (PDF、 DOC 或 CSV&#…

Ubuntu 常用命令之 cp 命令用法介绍

cp命令在Ubuntu系统中用于复制文件或目录。它的基本格式是cp [选项] 源文件或目录 目标文件或目录。 以下是一些常用的cp命令选项 -i:在覆盖目标文件之前将给出提示。-r或-R:递归复制,用于目录的复制操作。-v:详细模式&#xff…

2023-12-12 AIGC-AI工具的基本工作原理

摘要: 2023-12-12 AIGC-AI工具的基本工作原理 AI工具的基本工作原理 AI工具的基本工作原理涉及到一系列复杂的技术和算法。这些原理可以根据不同类型的AI工具进行概括,包括机器学习、自然语言处理、图像识别等。以下是一些关键的AI工具及其工作原理的概述&#xff…

对于实例控制,枚举类型优先于readResolve

实例控制是指控制类实例的创建和使用过程,而 readResolve 方法是 Serializable 接口中的一个特殊方法,用于在反序列化时控制对象的实例。在一些情况下,使用枚举类型可以更优雅地实现实例控制,而不需要依赖 readResolve 方法。 下…

shell编程-uniq命令详解(超详细)

文章目录 一、引言二、命令格式和选项三、示例用法四、注意事项和常见问题五、扩展应用六、总结七、参考文献 一、引言 本文将介绍Unix/Linux系统中的uniq命令,该命令用于从输入中删除重复的行,并可进行排序和统计操作。uniq命令在处理文本文件时非常有…

网络基础(十二):ACL与NAT

目录 一、ACL 1、ACL的概述 2、ACL的分类 3、ACL的应用 4、ACL的组成和基本原理 ​编辑 5、ACL的配置 5.1配置基本ACL 5.2配置高级ACL 二、NAT 1、NAT的概述 2、NAT的分类 3、NAT的工作原理 4、静态NAT的配置 5、动态NAT的配置 6、NAPT(端口映射&am…

查询某个类是在哪个JAR的什么版本开始出现的方法

背景 我们在依赖第三方JAR时,同时也会间接的依赖第三方JAR引用的依赖,而当我们项目中某个依赖的版本与第三方JAR依赖的版本不一致时,可能会导致第三方JAR的在运行时无法找到某些方法或类,从而无法正常使用。 如我正在开发的一个…

流程引擎相关资料

最近调研流程引擎相关知识,BPMN规范和流程引擎相关知识无法避开,以及市面上比较多的流程引擎产品。 BPMN2.0 基本形状 流对象(Flow Objects),流对象是定义业务流程的主要图形元素。它进一步细分为三个类别&#xff0…

代码随想录算法训练营

Day 01 | 704. 二分查找、27. 移除元素 今日学习的文章链接和视频链接 自己看到题目的第一想法 看完代码随想录之后的想法 自己实现过程中遇到哪些困难 今日收获,记录一下自己的学习时长 Day 02 | 977.有序数组的平方 ,209.长度最小的子数组 &#xff…

运行时类的应用

创建运行时类的对象 例&#xff1a; 创建运行时类的Class类对象。 Class<Person> clazz Person.class&#xff1b; newInstance(&#xff09;:调用此方法&#xff0c;创建对应的运行时类的对象。内部调用了运行时类的空参构造器。 Person p clazz.newInstance(); …

[SUCTF 2018]MultiSQL MYSQL 预处理写

首先这道题需要预处理写马 之前在ctfshow中学习过预处理 我们来看看 CTFSHOW -SQL 注入-CSDN博客 首先我们开始判断是否存在注入 2^(if(10,1,0))2^(if(ascii(mid(user(),1,1))>0,0,1))判断出存在sql注入 然后我们开始fuzz 发现 select &#xff0c;union 都没了 但是…