Básicamente, me gustaría que mi clase (cambiador) se encargue de su propio estado, y cuando quiera activar Vue para actualizar todo según los campos públicos.
Cuando estoy usando un método, funciona, sin embargo, el temporizador no funciona.
De las fuentes de Vue, parece que podría lograr esto ejecutando la función de activación de esta manera
trigger(target, \"set\" /* SET */, key, value, oldValue);https://unpkg.com/vue@3.2.19/dist/vue.global.js #875
Sin embargo, la función de activación no se exporta desde vue y no parece estar hecha para usarse manualmente, ¿hay otra forma? ¿O la única forma es ir y establecer todo el camino desde el objeto app2?
class changer { constructor() { this.value = 0 setInterval(() => { console.log(this,this.value) this.value++ }, 2500) } changeme() { this.value++ //tell vue to trigger values dependicies } } var c = new changer(); c.changeme(); console.log(c); var m = new Map(); m.set("a", 1); m.set("b", 1); console.log(m); var Counter = { data() { return { counter: 0, m, c } }, } var app = Vue.createApp(Counter); var app2 = app.mount('#counter') <script src="https://unpkg.com/vue@next"></script> <div id="counter"> Counter: {{ counter }} <span v-for="i in m">{{i}}</span> <button @click="m.set('a',2)">Change Map</button> <span> {{c}} <button @click="c.changeme()">Change with method</button> <button @click="c.value++">Change with set</button> </span> </div>