vue versiones tutorial pasar otro framework español entre ejemplos datos comunicacion componentes componente vue.js

vue.js - versiones - ¿Cuál es la mejor manera de acceder a los datos de los métodos?



vue.js tutorial español (3)

Depende de cómo llame a su método postQuestionsContent (si lo llama de forma asíncrona, es posible que necesite bind this contexto).

En la mayoría de los casos, debe poder acceder utilizando this.$data.YOURPROPNAME , en su caso this.$data.sendButtonDisable :

data: function () { return { questions: [], sendButtonDisable : false } }, methods: { postQuestionsContent : function() { this.$data.sendButtonDisable = true; } }

Tengo el siguiente código:

data: function () { return { questions: [], sendButtonDisable : false } }, methods: { postQuestionsContent : function() { var that = this; that.sendButtonDisable = true; } }

Necesito cambiar sendButtonDisable a true después de la llamada postQuestionsContent . Solo encontré una forma de hacerlo con var that = this; . ¿Hay alguna solución mejor?


Dentro de los métodos si no tiene otro alcance definido en el interior, puede acceder a sus datos así:

this.sendButtonDisable = true;

pero si tiene un alcance dentro de la función, entonces en vue es un uso común de una variable llamada vm (representa el modelo de vista ) al comienzo de la función, y luego simplemente utilícela en todas partes como:

vm.sendButtonDisable = false;

ejemplo completo:

data: function () { return { questions: [], sendButtonDisable : false } }, methods: { postQuestionsContent : function() { // This works here. this.sendButtonDisable = true; // The view model. var vm = this; setTimeout(() => { // This does not work, you need a the outside context view model. //this.sendButtonDisable = true; // This works, since wm refers to your view model. vm.sendButtonDisable = true; }, 1000); } }


Prueba esto en cambio

... methods: { postQuestionsContent () { this.sendButtonDisable = true; } }

El registro de sus métodos de la manera anterior debería resolver el problema.