DAWM

Regresar

React - Interfaces + Props

react banner

Props


Los componentes de React emplean props como medio de comunicación entre ellos. Mediante el uso de props, un componente padre puede transmitir información a sus componentes hijos. Aunque las props pueden tener cierta similitud con los atributos HTML, su función va más allá, ya que posibilitan la transmisión de diversos valores de JavaScript, como objetos, arrays y funciones.

Fuente: React Basics

Interfaz


export default interface Datum {
    title: String;
    subtitle: String;
    description?: String;
    intro?: String;
}

Componente MUI: Card


...
import Typography from '@mui/material/Typography';
import Card from '@mui/material/Card';
import CardContent from '@mui/material/CardContent';
import { CardActionArea } from '@mui/material';
...
...
export default function <COMPONENTE>() {
    return (
        <Card>
        <CardActionArea>
            <CardContent>
                <Typography gutterBottom component="h2" variant="h6" color="primary">
                    Subtítulo
                </Typography>
                <Typography component="p" variant="h4">
                    Título
                </Typography>
                <Typography color="text.secondary" sx={{ flex: 1 }}>
                    Descripción
                </Typography>
            </CardContent>
        </CardActionArea>
    </Card>
    )
}
import Datum from '../interfaces/Datum.tsx';

export default function <COMPONENTE>(data: Datum) {
    ...
}
...
export default function <COMPONENTE>(data: Datum) {
    return (
        <Card>
            <CardActionArea>
                <CardContent>
                    <Typography gutterBottom component="h2" variant="h6" color="primary">
                        {data.subtitle}
                    </Typography>
                    <Typography component="p" variant="h4">
                        {data.title}
                    </Typography>
                    <Typography color="text.secondary" sx={{ flex: 1 }}>
                        {data.description}
                    </Typography>
                </CardContent>
            </CardActionArea>
        </Card>
    )
}

Comunicación entre Componentes: Props


...
function App() {

  return (
    <Grid container spacing={5}>
            <Grid xs={12} sm={12} md={12} lg={12} >
                <Calculator/>
            </Grid>
            <Grid xs={12} sm={6} md={6} lg={6}>
                <Plan title="Plan" subtitle="100 Gb" description="Todos los servicios incluídos" />
            </Grid>
            <Grid xs={12} sm={6} md={6} lg={6}>
                <Result title="$120" subtitle="6 meses" description="Plan 100 Gb"/>
            </Grid>
        </Grid>
  )
}

export default App

react_props

Referencias