在vue中有时我们需要将data中的数据重置为初始状态,例如我们发布一篇文章,发布完成之后我们希望和表单双向绑定的对象重置为初始状态
那么此时我们有两种办法,第一种,手动去给表单双向绑定的对象赋值为空
data(){
return{
Notica:{
title:"",
content:"",
}
}
}
最直接的办法
this.Notica.title = ""
this.Notica.content = ""
但这种方法只在对象数量少的时候可以用一下,如果我需要重置的对象很多怎么办,此时可以用另一种方法
this.$options.data()
调用它我们可以获取到页面data在刚初始化时的状态
data(){
return{
Notica:{
title:"",
content:"",
}
}
}
那么这样我们就可以将data中的某个数据重置到初始状态
this.Notica = this.$options.data().Notica
但如果我想把整个data都重置到初始化状态呢?
Object.assign(this.$data, this.$options.data.call(this))
那就用这个方法
this.$data 获取的是当前的data对象
Object.assign则可以将一个对象赋值给另一个对象
两个参数,可以将参数2 赋值给 参数1
注意 这里调用options.data 时请用call调用并传入当前this,不这么做的话默认的this可能会指向全局vue对象,这就会导致它报错