JSON.
const child = {
props:["user"],
data(){
return {
localUser: Object.assign({}, this.user)
}
}
}
localUser ( , ) .
Edit
, , , @user3743266
, . . , , . , ... , - . , v-ifs, . , - ?
:
Vue.component('edit-user', {
template: `
<div>
<input type="text" v-model="localUser.name">
<button @click="$emit('save', localUser)">Save</button>
<button @click="$emit('cancel')">Cancel</button>
</div>
`,
props: ['user'],
data() {
return {
localUser: Object.assign({}, this.user)
}
}
})
, @user3743266 , . user , localUser - . , , , .
Vue.component('edit-user', {
template: `
<div>
<input type="text" v-model="localUser.name">
<button @click="$emit('save', localUser)">Save</button>
<button @click="$emit('cancel')">Cancel</button>
</div>
`,
props: ['user'],
data() {
return {
localUser: Object.assign({}, this.user)
}
},
watch:{
user(newUser){
this.localUser = Object.assign({}, newUser)
}
}
})
fiddle.
, / . , .
watch:{
user(newUser){
if (condition)
this.localUser = Object.assign({}, newUser)
}
}
, , , , , , , .