Propiedades computadas en objetos, con reactive():
const persona = reactive({
nombre: "Felipe",
apellido: "Perez",
edad: 20,
nombreCompleto: computed(() => {
return `${persona.nombre} ${persona.apellido}`;
}),
});
Introducción
¿Qué aprenderás en este curso?
Introducción a Vue CLI
Estructura del proyecto
Built-in Components
Componentes dinámicos
Componentes asíncronos
Transiciones
Teleports
Componentes personalizados
Virtual DOM
Entendiendo el ciclo de vida de los componentes
Explorando los primeros hooks del ciclo de vida de Vue
Mixins
Composition API
Introducción a Composition API
Ciclo de vida en Composition API
Variables reactivas con ref y reactive
Watch
Computed
Uso de props
Uso de context
Provide / Inject
Template refs
Composition vs. Options
Script setup
Cierre del curso
Hora de poner tu conocimiento en práctica
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Diana Martínez
Aportes 5
Preguntas 2
Propiedades computadas en objetos, con reactive():
const persona = reactive({
nombre: "Felipe",
apellido: "Perez",
edad: 20,
nombreCompleto: computed(() => {
return `${persona.nombre} ${persona.apellido}`;
}),
});
Codigo de esta clase
<template>
<div>{{ fullname }}</div>
</template>
<script>
import { ref, computed } from "vue";
export default {
setup() {
const firstName = ref("Dufainder");
const lastName = ref("Bedoya");
const fullName = computed(() => {
return `${firstName.value} ${lastName.value}`;
});
return {
fullName,
};
},
};
</script>
Otra forma de hacerlo, me parece que el código queda un poco más limpio, ¿qué opinan?
<template>
<h2>{{ fullName }}</h2>
</template>
<script>
import { ref, computed } from "vue"
export default {
setup() {
const firstName = ref("John")
const lastName = ref("Doe")
return {
fullName: computed(() => `${firstName.value} ${lastName.value}`)
}
}
}
</script>
Mi reto con computed haciendo que reciba un valor por parámetro:
<template>
<div>
<button @click="estado = !estado">Cambiar valor</button>
</div>
<div><button @click="miobj.count++">Aumentar valor</button></div>
<div><button @click="proximo = 0">Resetear</button></div>
<div v-show="estado">¡Apareci!</div>
<div>{{ miobj.count }}</div>
<div>Siguiente valor: {{ proximo }}</div>
</template>
<script setup>
import { ref, reactive, watch, computed } from "vue";
const estado = ref(true);
const miobj = reactive({ count: 0 });
// const proximo = computed(() => miobj.count + 1);
const proximo = computed({
get: () => miobj.count + 1,
set: (valor) => {
miobj.count = valor;
},
});
watch(proximo, (newValue, oldValue) => {
console.log("Anterior", oldValue);
console.log("Nuevo", newValue);
if (miobj.count > 10) {
proximo.value = 0;
}
});
</script>
Entonces con la funcion setup(){}
hacemos todo lo que haciamos con options API pero de una forma digamos “manual” pero más sencillo. Solo es acostumbrarse a ya no declarar las variables en data
sino usar ref
o reactive
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?