No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Compra acceso a todo Platzi por 1 año

Antes: $249

Currency
$209/año

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

15D
21H
15M
11S

Comunicación de componente padre a hijo

17/23
Recursos

Aportes 7

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Si no te aparece el texto por defecto en las props

text: {
    default: "Texto vacio"
}

agregar esto

items:["unos","dos","tres",,]

**Profe se le olvidó explicar esto -> **

items:["unos","dos","tres",,]

Se agregó dos comas al final del array

creo que de alguna manera tienen que estar enlazados para que puede funcionar el default text

saludos

Aquí todas las validaciones la cual comenta la profe:
https://vuejs.org/guide/components/props.html#prop-validation

💚 Comunicación entre componentes

La directiva v-bind permite utilizar variables dinámicas, reactividad de valores en tiempo real, permite cualquier tipo de dato

La sintaxis de props permite enviar datos de componentes padre a componentes hijo de forma reactiva, se utiliza como una variable local que viene desde una parte externa.

Es una mala práctica cambiar el valor del prop sin avisar al componente padre

Ejemplo:

app.component("v-item",{
    props: {
        text: {
            default: "Texto vacío"
        }
    },
    template:`
    <li>
        {{text}}
    </li>
    `
} )

La sintaxis en props se puede simplificar a una lista, sin embargo se considera una buena práctica escribirlo como el ejemplo.

Todos mis apuntes en mi github

Mi aporte

<script type="text/javascript">
		const app = Vue.createApp({
			data() {
				return {
					movies:
					[
						{
							title:'Tierra de osos', 
							duration:
							{
								number:2,
								timeFormat:'hrs'
							}
						},
						{
							title:'Madagascar', 
							duration:
							{
								number: 90,
								timeFormat:'min'
							}
						},
						{},{}
					]
				}
			},
			template: `
				<ul>
					<v-item v-for="movie in movies" v-bind:title="movie.title" v-bind:duration="movie.duration"></v-item>
				</ul>
			`,
		});

		app.component('v-item',{
			props: {
				title: {
					type: String,
					default:'Default value'
				},
				duration: {
					type: Object,
					default:'New value',
				}
			},
			template:`
				<li>{{title}} {{duration.number}}{{duration.timeFormat}}</li>
			`,
		});

		const vm= app.mount('#app');

	</script>


tipos soportados

Ojo con la parte de data, yo lo tenia así y no me esta mostrando el texto vacío:

const app = Vue.createApp({
            data() {
                return {
                    items: ["uno", "dos", "tres", "cuatro"]
                };
            },
            template:``,
        });

Pero le agregue dos comas (",") después del cuatro y hay si me lo mostro:

const app = Vue.createApp({
            data() {
                return {
                    items: ["uno", "dos", "tres", "cuatro", ,]
                };
            },
            template:``,
        });
props: {
                text: {
                    default: "texto vacio"
                }
},