This question already has answers here:
vuejs update parent data from child component
(10个答案)
2年前关闭。
我在从子项的更改中进行父绑定更新时遇到问题。
我有以下vue代码:
我在父母视图上绑定孩子的计算属性。
我正在尝试从子级获取计算属性,以更新父级中的
我已经尝试过使用商店,但不幸的是,它给出的结果完全相同。
我创建了this小提琴:https://jsfiddle.net/alexintime/02jxvqex/7/
(10个答案)
2年前关闭。
我在从子项的更改中进行父绑定更新时遇到问题。
我有以下vue代码:
Vue.component('usercomp', {
template: '<input v-model="user.name.lastname">',
props:['user'],
computed: {
fullname: function() {
return this.user.firstname + ' ' + this.user.lastname;
}
}
});
new Vue({
el: '#user-example',
data: function() {
return {
user: {
name: {
fullname: '',
firstname: '',
lastname: '',
}
}
}
}
})
我在父母视图上绑定孩子的计算属性。
我正在尝试从子级获取计算属性,以更新父级中的
<p>
。我已经尝试过使用商店,但不幸的是,它给出的结果完全相同。
我创建了this小提琴:https://jsfiddle.net/alexintime/02jxvqex/7/
最佳答案
我已经更新了你的小提琴。 https://jsfiddle.net/observing/2jumkmvc/9/
Vue.component('usercomp', {
template: `<div>
<input v-model="user.name.firstname">
<br>
<input v-model="user.name.lastname">
</div>`,
props:['user'],
computed: {
fullname: function() {
return this.user.name.firstname + ' ' + this.user.name.lastname;
}
},
watch: {
fullname: function (val) {
this.$emit('change-full-name', val)
}
}
});
new Vue({
el: '#user-example',
data: function() {
return {
user: {
name: {
fullname: 'empty until type',
firstname: 'James',
lastname: 'Holden',
}
}
}
},
methods: {
changeFullName: function (fullName) {
this.user.name.fullname = fullName
}
}
})
<script src="https://unpkg.com/[email protected]"></script>
<div id="user-example">
<p> {{user.name.fullname}} </p>
<usercomp v-bind:user="user"
v-on:change-full-name="changeFullName"></usercomp>
</div>
10-07 23:59