Vue.component('my-component', {
template: `
<div>
<p>propA: {{ propA }}</p>
<p>val: {{ val }}</p>
</div>
`,
computed: {
val: {
get: function () {
console.log(this.propA)
return this.propA
},
set: function (val) {
console.log('setter execute')
console.log(val)
}
}
},
props: ['propA'],
mounted: function () {
setTimeout(() => {
this.val = 1000
}, 2000);
}
})
new Vue({
el: "#app",
data: {
a: 1
}
})
<div id="app">
<my-component :prop-a="a"></my-component>
</div>