解决vue中v-model绑定的变量赋值给了另一个变量后,两个变量同时改变

解决vue中v-model绑定的变量赋值给了另一个变量后,两个变量同时改变
先来看一下问题背景我们要做一个 搜索分页 的功能使用vue我们将分页控件绑定了点击事件点击后提交v-model绑定的formData表单但是我们忽略了一个问题就是当输入的信息改变的情况下不点击搜索直接点击分页控件提交的将会是新现在搜索框中的搜索条件。这样就不和逻辑了。于是我们在data中新加了一个表单的对象 submitForm只有在点击 查询 的时候v-model绑定的 formData 表单才会赋值给这个对象而翻页的时候提交的是 submitForm 。这样就解决了这个问题。data() { return { formData: { timeStart: , timeEnd: , // 分页数据 pageNo: 1, pageSize: 10 }, submitForm: { timeStart: , timeEnd: , // 分页数据 pageNo: 1, pageSize: 10 }, } this.submitForm this.formData // 用 new也是一样达不到效果 this.submitForm new Object(this.formData)但是submitForm 竟然跟着变了这是因为在Object赋值的时候传递的不是值而是引用他们指向了同一个空间解决第一种利用 JSON.parse 和 JSON.stringifythis.submitForm JSON.parse( JSON.stringify(this.formData) )第二种ES6 的解析语法this.submitForm { ...this.formData }