Vue.js 2 template
HTML
<script src="https://unpkg.com/vue@2.5.6/dist/vue.js"></script>
<div id="app">
{{parent}}
<child :parent="parent" @update:parent="mutate"></child>
</div>
Babel + JSX
Vue.component('child', {
template: `
<div>
<input :value="parent.foo" @change="$emit('update:parent', $event.target.value)" />
</div>
`,
props: {
parent: {
type: Object
}
}
})
new Vue({
el: '#app',
data: () => ({
parent: {foo: 'a', bar: 'b'}
}),
methods: {
mutate (value) {
this.parent.foo = value
}
}
})