Прежде всего, ваш input
должен быть внутри элемента #app
.Ваш экземпляр в настоящее время даже не отслеживается экземпляром Vue.
<div id="app">
<input v-model="msg"/>
<p>{{ msg }}</p>
</div>
Кроме того, ваш A.a = 1
ничего не делает.Если у вас значение console.log
A, вы нигде не увидите a
.Создайте экземпляр A и добавьте переменную a
в свой конструктор:
class A {
constructor(a) { this.a = a}
}
let myA = new A(0)
с экземпляром Vue, как это будет работать:
new Vue({
el: '#app',
data: {
a: myA.a = 1
},
computed: {
msg: {
set: function(val) {
this.a = val
},
get: function() {
return this.a
}
}
}
})
Однако я бы переместил создание экземпляра класса в данные:
data() {
return {
a: new A(1).a
}
},
Если вы оставите a
вне данных, ваш установщик будет работать и обновлять значение, но ваш получатель не будет работать, поскольку переменные вне экземпляра Vue не наблюдаются.