Comunicación entre Componentes
Props Básicas
Las props permiten pasar datos de un componente padre a uno hijo para configurar su contenido o su comportamiento desde fuera.
Ejemplo
Pasar un nombre y un color desde un componente padre para personalizar el texto que muestra un componente hijo.
VuedefineProps
<script setup lang="ts">
import Greeting from './Greeting.vue'
</script>
<template>
<Greeting name="John" color="blue" />
</template>
// Greeting.vue
<script setup lang="ts">
const props = defineProps<{
name: string
color: string
}>()
</script>
<template>
<h1 :style="{ color: props.color }">
Hello, {{ props.name }}!
</h1>
</template>
Recibe las props con defineProps dentro del componente hijo para poder usarlas en su lógica o en su template.
Reactprops
function App() {
return <Greeting name="John" color="blue" />
}
// Greeting.tsx
type GreetingProps = {
name: string
color: string
}
function Greeting({ name, color }: GreetingProps) {
return <h1 style={{ color }}>Hello, {name}!</h1>
}
Recibe las props como argumentos del componente hijo para poder usarlas en su lógica o en su JSX.
Angularinput()
import { Component } from '@angular/core'
import { GreetingComponent } from './greeting.component'
@Component({
selector: 'app-root',
standalone: true,
imports: [GreetingComponent],
template: `
<app-greeting name="John" color="blue" />
`,
})
export class AppComponent {}
// greeting.component.ts
import { Component, input } from '@angular/core'
@Component({
selector: 'app-greeting',
standalone: true,
template: `
<h1 [style.color]="color()">
Hello, {{ name() }}!
</h1>
`,
})
export class GreetingComponent {
name = input.required<string>()
color = input.required<string>()
}
Declara inputs reactivos con input() dentro del componente hijo para poder usarlos en su lógica o en el template.
