Vue resets data to its initial state

Vue resets data to its initial state

In some cases, the data in data needs to be reused, but the data in data has been assigned to various forms, variables, etc., so how to reset the value of data?

1. Assign values ​​one by one

...
data() {
 return {
 name: '',
 sex: '',
 desc: ''
 }
}
...
// Assign values ​​one by one this.name = ''
this.sex = ''
this.desc = ''

This method is clumsy, and of course it can achieve the desired effect, but it is troublesome to reassign values ​​one by one and the code will look messy.

The following method is definitely what you like, one line of code to get it done~

2. Use Object.assign()

MDN introduction to this method: The Object.assign() method is used to copy the values ​​of all enumerable properties from one or more source objects to a target object. It will return the target object.

Usage: Object.assign(target, ...sources)

The first parameter is the target object, and the second parameter is the source object, which means copying the source object properties to the target object and returning the target object.

This is to copy the properties of one object to another object

In Vue:

this.$data gets the data in the current state

this.$options.data() Get the data of the component in its initial state

Therefore, we can copy the data of the initial state to the data of the current state to achieve the reset effect:

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

Of course, if you only want to reset a certain object or attribute in data:

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

Extensions

The Object.assign(target, ...sources) method can also be used to merge objects:

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 }, Note that the target object itself will also change.

If the object contains the same attributes, take the last attribute:

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 } The property takes the property of the last object

The above is my personal experience. I hope it can give you a reference. I also hope that you will support 123WORDPRESS.COM. If there are any mistakes or incomplete considerations, please feel free to correct me.

You may also be interested in:
  • How to implement vue data to restore initialization data
  • Vue restores data to its initial state && re-renders the component instance
  • Computed properties and data acquisition methods in Vue
  • How to initialize data in Vue

<<:  How to use squid to build a proxy server for http and https

>>:  MySql forgotten password modification method is suitable for versions 5.7 and above

Recommend

Introduction to several ways to introduce CSS in HTML

Table of contents 1. Embed CSS styles directly in...

A detailed explanation of the subtle differences between Readonly and Disabled

Readonly and Disabled both prevent users from chan...

JavaScript design pattern learning proxy pattern

Table of contents Overview Implementation Protect...

Solution to the img tag problem below IE10

Find the problem I wrote a simple demo before, bu...

Example of utf8mb4 collation in MySQL

Common utf8mb4 sorting rules in MySQL are: utf8mb...

MySQL view introduction and basic operation tutorial

Preface View is a very useful database object in ...

Pure CSS to change the color of the picture

The css technique for changing the color of an im...

VMware ESXi 5.5 deployment and configuration diagram process

Table of contents 1. Installation requirements 2....

MySQL database green version installation tutorial to solve system error 1067

What is the difference between the green version ...

Basic statements of MySQL data definition language DDL

MySQL DDL statements What is DDL, DML. DDL is dat...

MySQL replication mechanism principle explanation

Background Replication is a complete copy of data...

CSS to achieve glowing text and a little bit of JS special effects

Implementation ideas: Use text-shadow in CSS to a...

js to achieve the effect of light switch

This article example shares the specific code of ...