首页 > 其他分享 >Vue 重置data的数据为初始状态操作

Vue 重置data的数据为初始状态操作

时间:2023-08-23 11:56:07浏览次数:36  
标签:Vue const 对象 Object 初始状态 data assign 属性

在某些情况下,需要重新使用data中的数据,但是data中的数据已经被各种表单、变量等赋值,那么怎么重置data的值呢?

1. 逐个赋值

...
data() {
 return {
 name: '',
 sex: '',
 desc: ''
 }
}
...
// 逐个赋值
this.name = ''
this.sex = ''
this.desc = ''

这个方法比较笨,当然也可以实现效果,但是一个一个去重新赋值比较麻烦而且代码看起来也会比较乱。

下面这个方法肯定是你喜欢的,一行代码搞定~

2. 使用Object.assign()

MDN关于该方法的介绍:Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

用法: Object.assign(target, ...sources)

第一个参数是目标对象,第二个参数是源对象,就是将源对象属性复制到目标对象,返回目标对象

其中就是将一个对象的属性copy到另一个对象

vue中:

this.$data 获取当前状态下的data

this.$options.data() 获取该组件初始状态下的data

所以,下面就可以将初始状态的data复制到当前状态的data,实现重置效果:

Object.assign(this.$data, this.$options.data())

当然,如果你只想重置data中的某一个对象或者属性:

this.form = this.$options.data().form

扩展

Object.assign(target, ...sources) 方法还可以用来合并对象:

const o1 = { a: 1 };
const o2 = { b: 2 };
const o3 = { c: 3 };
const obj = Object.assign(o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }
console.log(o1); // { a: 1, b: 2, c: 3 }, 注意目标对象自身也会改变。

如果对象中含有相同属性,取最后一个属性:

const o1 = { a: 1, b: 1, c: 1 };
const o2 = { b: 2, c: 2 };
const o3 = { c: 3 };
const obj = Object.assign({}, o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 } 属性取最后一个对象的属性

 

标签:Vue,const,对象,Object,初始状态,data,assign,属性
From: https://www.cnblogs.com/liyunxi/p/17650820.html

相关文章

  • Vue学习笔记:Pinia Part02 Store
    在Pinia中有option和setup两种写法OptionStore与Vue的选项式API类似,我们也可以传入一个带有 state、actions 与 getters 属性的Option对象exportconstuseCounterStore=defineStore('counter',{state:()=>({count:0}),getters:{double:(state)......
  • RuoYi-vue配置记录
    如果这个项目能顺利运行,标志着Springboot+vue的前后端环境都配好了。一、官方文档若依官方文档:介绍|RuoYi,在这个地方克隆/下载项目源代码https://gitee.com/y_project/RuoYi-Vue解压到自己的目录下 首先根据官方文档的环境部署所说,检查一下自己的这些是否都满足要求了:J......
  • vue 页面滚动时自动切换Tab标签,点击标签自动滚动页面
    功能:手机端实现切换头部tab定位到下文内容,滚动页面内容时自动定位到相对应tab逻辑:监听+tab切换完整代码:以下是完整代码:<template><divclass="box"><divclass="tab"ref="tab"><divv-for="(item,index)intabs":key=&......
  • Lnton羚通视频算法算力云平台【PyTorch】教程:学习Datasets-DataLoader基础知识
    Dataset&DataLoaderPyTorch提供了两个数据处理的基本方法:torch.utils.data.DataLoadertorch.utils.data.Dataset允许使用预加载的数据集以及自己的数据。Dataset存储样本及其对应的标签,DataLoader在Dataset基础上封装了一个可迭代的对象,以方便访问样本。PyTorch提供了......
  • 字节跳动基于DataLeap的DataOps实践
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群本文根据ArchSummit全球架构师峰会(深圳站)来自抖音数据研发负责人王洋的现场分享实录整理而成(有删减),本次分享主要包含字节跳动数据研发的模式与挑战、DataOps理念在字节的具象、DataOps产品化......
  • 2023-08-23 vuetifyjs icon用法 ==》 前缀mdi-加上icon名称
    我现在用的是最新3.0版本的vuetifyjs,它的icon库来自......
  • Vue+SpringBoot项目分离部署踩坑记录
    昨天花了一晚上终于成功部署了个人网站,在这个过程中踩了很多坑,现在回顾总结记录一下,以免今后继续犯错误前端:Vue后端:SpringBoot数据库:Mysql一、前端1、前端项目采用Nginx进行部署,其中Nginx配置文件部分内容如下nginx.conf部分内容1server{2listen443ssl......
  • 【pandas小技巧】--DataFrame的显示参数
    我们在jupyternotebook中使用pandas显示DataFrame的数据时,由于屏幕大小,或者数据量大小的原因,常常会觉得显示出来的表格不是特别符合预期。这时,就需要调整pandas显示DataFrame的方式。pandas为我们提供了很多调整显示方式的参数,具体参见文末附录中的链接。本篇介绍几个我经常用到......
  • 20230622 java.io.DataOutputStream
    介绍java.io.DataOutputStreampublicclassDataOutputStreamextendsFilterOutputStreamimplementsDataOutput支持写出基本数据类型API构造器DataOutputStream(OutputStreamout)publicsize返回目前为止写入的字节数......
  • 20230622 java.io.DataOutput
    介绍java.io.DataOutputpublicinterfaceDataOutput定义了用于以二进制格式写数组、字符、boolean值和字符串的方法API写字节writevoidwrite(intb)throwsIOException;voidwrite(byteb[])throwsIOException;voidwrite(byteb[],intoff,intlen)throws......