Vue.js es un marco progresivo de JavaScript para crear interfaces de usuario. Uno de los conceptos importantes en Vue.js y en los marcos modernos de JavaScript es la reactividad. La reactividad se refiere a la capacidad de un componente para responder a los cambios en su estado o propiedades.
Sin embargo, a veces, es posible que un objeto inicialmente no sea reactivo. Es decir, si cambia una propiedad en este objeto, Vue.js no puede detectar el cambio y, por lo tanto, no puede actualizar el DOM en consecuencia. Veremos cómo podemos hacer que un componente Vue.js reaccione a los cambios en un objeto no reactivo.
La forma correcta de hacer que Vue.js reaccione a los cambios en un objeto no reactivo es usando el método Vue.set(objeto, clave, valor)
. Este método se usa para añadir una propiedad a un objeto de manera que se haga reactivo.
Veamos un ejemplo práctico. Supongamos que tiene un objeto no reactivo persona
y desea agregarle una propiedad edad
que sea reactiva:
let persona = {nombre: 'Juan'};
Vue.set(persona, 'edad', 25);
Ahora, cada vez que el valor de edad
cambie, Vue.js podrá detectar el cambio y reaccionar a él. No funcionaría si simplemente usara persona.edad = 25
. Este método no hace que la propiedad edad
sea reactiva y Vue.js no sería capaz de detectar los cambios en la propiedad.
Por lo tanto, siempre que desee hacer que un componente Vue.js reaccione a los cambios en un objeto no reactivo, use el método Vue.set()
. Por supuesto, la reactividad es un tema amplio y hay más métodos y enfoques para manejarla en Vue.js. Pero Vue.set()
es una técnica simple y eficaz que puede usar en muchos casos.