Computed properties en Vue.js: cómo crearlas
Clase 15 de 53 • Curso Profesional de Vue.js 2
Contenido del curso
CLI y Dev Tools
- 3

Instalación de Vue.js: Node, Dev Tools y CLI
06:13 min - 4

Crear una aplicación Vue con CLI y webpack
12:49 min - 5

Cómo funciona webpack.config.js
10:38 min - 6

Babel: transpilador de JavaScript moderno
05:06 min - 7

ESLint con Standard JS: linteo automático en webpack
15:34 min - 8

Configuración de Sass y Bulma en Vue
06:18 min - 9

Cómo configurar Pug en Vue con webpack
04:23 min - 10
Diseño de Mockups: Práctica y Colaboración en Comunidad
00:20 min - 11
Creación de Vistas con Mockups y Vue.js
00:32 min
Manipulación del DOM
- 12

Expresiones en Vue: sintaxis doble llave
03:49 min - 13

Diferencia entre v-show y v-if en el DOM
06:22 min - 14

Qué es data binding en Vue.js
04:11 min - 15

Computed properties en Vue.js: cómo crearlas
Viendo ahora - 16

Qué son los watchers de Vue
02:25 min - 17

Eventos Vue: directiva v-on y métodos format
06:12 min - 18

Cómo construir una interfaz de búsqueda completa en Vue
19:03 min - 19
Manipulación del DOM con Vue.js: Práctica y Ejercicios
03:00 min
REST y HTTP
Sistema de Componentes
- 23

Cómo crear componentes en Vue
08:46 min - 24

Componentes Layout en Vue con Bulma
09:50 min - 25

Reactividad en Vue: $set y Object.assign
06:14 min - 26

Hooks del ciclo de vida en Vue.js
05:38 min - 27

Comunicación padre-hijo con props en Vue
23:27 min - 28

Eventos en Vue: comunicar hijo a padre
12:04 min - 29

Slots: HTML dinámico en componentes Vue
13:42 min - 30

Plugin Event Bus: comunicar componentes sin relación en Vue
19:19 min
Vue Router
Extendiendo VueJS
Clases, Animaciones y Transiciones36
Vuex
- 39

Cómo Vuex centraliza estados en Vue
03:41 min - 40

Instalación de Vuex con estado único
17:32 min - 41

Cómo usar mutations y commit en Vuex
08:16 min - 42

Getters de Vuex: mapGetters y store sincronizado
07:35 min - 43

Cómo dispatch ejecuta actions asincrónicas en ViewX
07:54 min - 44

Instalación de Viewex en Platzi Music
26:37 min
Nuxt.js
Deploy a Producción con Now
Conclusiones
Bonus
Aprende a crear propiedades computadas que generan valores dinámicos a partir de otras propiedades. Verás cómo definir funciones en el objeto computed, usarlas con v-model y mejorar la legibilidad con template strings de ES6. Además, identifica buenas prácticas con this y evita errores comunes de linteo.
¿Qué son las propiedades computadas y por qué importan?
Las propiedades computadas son funciones que devuelven un valor basado en otras propiedades. Se definen dentro de un objeto llamado computed y se actualizan de forma reactiva cuando cambian sus dependencias, por ejemplo, cuando cambian name o last name.
- Se declaran en el objeto computed del view model.
- Son funciones puras que retornan un valor derivado.
- Se recalculan ante cambios en sus dependencias.
- Se accede a propiedades y métodos con this dentro de computed, watchers y métodos.
- Útiles para casos como concatenar full name o calcular edad a partir de fecha de nacimiento.
¿Cómo implementarlas con v-model y this?
Para que una propiedad computada funcione, sus dependencias deben existir en el objeto data. Si creas un input con v-model="lastName", debes definir lastName en data. Luego, en computed, defines una función que retorne el valor calculado y lo muestras en una expresión del template.
¿Qué pasos seguir para crear full name con v-model?
- Agrega un input con v-model para lastName.
- Declara en data las propiedades name y lastName.
- Crea en computed la función fullName que concatene ambos valores.
- Muestra el resultado en el template con una expresión.
Ejemplo mínimo:
<input v-model="lastName" />
<p>{{ fullName }}</p>
export default {
data () {
return {
name: '',
lastName: ''
}
},
computed: {
// Nota: algunos linters piden espacio antes de paréntesis.
fullName () {
return this.name + ' ' + this.lastName
}
}
}
Punto clave: usa this para acceder a name y lastName dentro de computed.
¿Cómo optimizar concatenación con template strings?
Usa template strings de ES6 para escribir código más limpio. Emplea back ticks y la sintaxis ${} para interpolar variables sin concatenar manualmente espacios.
Antes:
fullName () {
return this.name + ' ' + this.lastName
}
Con template strings:
fullName () {
return `${this.name} ${this.lastName}`
}
Ventajas: mejor legibilidad, menos errores por espacios y concatenaciones.
¿Qué tener en cuenta sobre estilos y errores?
- Un aviso de linteo por espacio antes de paréntesis es de estilo, no de sintaxis.
- Al guardar, verás cómo fullName se regenera cada vez que cambian name o lastName.
- Mantén las dependencias declaradas en data para evitar errores.
¿Qué otros casos de uso puedes practicar?
Un uso frecuente es calcular la edad a partir de una fecha de nacimiento. Define en data la fecha y crea una propiedad computada que derive la edad. Así, cada modificación en la fecha actualizará la edad de forma automática.
Sigue estos pasos: - Declara una propiedad para la fecha de nacimiento en data. - Crea una función en computed que derive la edad desde la fecha. - Muestra la edad en el template y verifica que cambia al modificar la fecha.
Si te animas, pausa y construye el ejemplo. Comparte tu código en comentarios para que podamos revisarlo juntos.