Vuejs все задания по ссылке, даже с распространением объектов - PullRequest
2 голосов
/ 24 сентября 2019

Если шаблон:

<div id="app">
  <button @click="doEditing">Edit</button>

  <input v-if="editing" v-model="editing.profile.name" />
  <span>{{ user.profile.name }}</span>
</div>

, а приложение Vuejs:

var app = new Vue({
  el: '#app',
  data: {
    user: {name: 'Foo'},
    editing: null
  },
  methods: {
    doEditing(){
       this.editing = {...this.user};
    }
  }
})

даже this.editing = {...this.user};, которое распространяет объект, назначает его по ссылке.Поэтому, когда я редактирую ввод, v-model меняет this.user, что не соответствует ожиданиям.

Я также проверил Object.assign, но без шансов.

1 Ответ

0 голосов
/ 25 сентября 2019

функция lodash _.cloneDeep только что решила проблему.

...