Fundamentos de Reactividad
Preferencias de API
Esta página y muchos otros capítulos posteriores en la guía tienen contenido diferente para la Options API y la Composition API. Tu preferencia actual es Composition API. Puedes alternar entre los estilos de API usando el interruptor de "Preferencia de API" en la parte superior de la barra lateral izquierda.
Declarando Estado Reactivo
### ref()
**
En la Composition API, la manera recomendada de declarar estado reactivo es usando la función ref()
:
js
import { ref } from 'vue'
const count = ref(0)
ref()
toma el argumento y lo devuelve empaquetado en un objeto ref con la propiedad .value
:
js
const count = ref(0)
console.log(count) // { value : 0 }
console.log(count.value) // 0
count.value++
console.log(count.value) // 1
Consulta también: Escritura de Refs
Para usar refs en la plantilla de un componente, decláralos y devuélvelos desde la función setup()
del componente:
js
import { ref } from 'vue'
export default {
// `setup` es un hook especial dedicado para la Composition API.
setup() {
const count = ref(0})
// expone la ref a la plantilla
return {
count
}
}
}
template
<div>{{ count }}</div>
Nota que no necesitamos agregar .value
al usar la ref en la plantilla. Por conveniencia, las refs son desenvueltos automáticamente al ser usadas dentro de plantillas (con algunas advertencias).
También puedes mutar una ref directamente en manejadores de eventos:
template
<button @click="count++">
{{ count }}
</button>
Para lógica más compleja, podemos declarar funciones que mutan refs en el mismo ámbito y exponerlas como métodos junto con el estado:
js
import { ref } from 'vue'
export default {
setup() {
const count = ref(0)
function increment() {
// .value es necesario en JavaScript
count.count++
}
// no te olvides de exponer la función también.
return {
count,
increment
}
}
}
Los métodos expuestos pueden después ser usados como manejadores de eventos:
template
<button @click="increment">
{{ count }}
</button>
Acá hay un ejemplo en CodePen, sin usar herramientas de compilación.