Material-UI es una biblioteca que proporciona componentes React para un desarrollo web fácil y rápido. Podemos juntar fácilmente componentes realmente estéticos y funcionales y hacerlo funcionar de acuerdo a nuestro uso ya que todos los componentes son configurables. Esto ahorra mucho tiempo ya que no tenemos que luchar con CSS para hacer que las cosas estén presentables. Los componentes de Material-UI funcionan de forma aislada. Son autosuficientes y solo inyectarán los estilos que necesitan mostrar.
Aprenderá cómo configurar y usar Material-UI en su aplicación web React a medida que construimos una aplicación de demostración «Iniciar sesión».
Como puede ver, la interfaz de usuario consta de elementos de diseño de materiales. Usaremos componentes Material-UI para mostrar un formulario de inicio de sesión al usuario. La aplicación consta de una barra de aplicaciones en la parte superior que contiene el título de la aplicación, dos campos de texto que se utilizan para ingresar el correo electrónico y la contraseña y un botón para iniciar sesión.
Generación del proyecto React: Primero, necesitamos crear un nuevo proyecto React. Esto se puede hacer usando el script create-react-app de la siguiente manera:
npx create-react-app signin-material-ui
Después de ejecutar este comando, está disponible un nuevo directorio de proyecto signin-material-UI. Cambie a la carpeta del proyecto recién creada y encontrará el proyecto de inicio de React.
Inicie su proyecto React por:
npm start
Instalación de la biblioteca y las dependencias de Material-UI: para poder usar los componentes de Material-UI, debemos asegurarnos de haberlo instalado en nuestro proyecto, lo que se puede hacer de la siguiente manera:
npm install @material-ui/core
Implementación de la aplicación de muestra: eliminación del contenido predeterminado, antes de comenzar a construir nuestro proyecto, debemos eliminar el contenido predeterminado del proyecto responsable de la pantalla de inicio:
- Seleccione todos los archivos en la carpeta src y elimínelos.
- Cree un nuevo archivo index.js en la carpeta src.
Ahora podemos agregar nuestro propio código al archivo index.js.
Componentes que usaremos:
Nombre del componente | Accesorios utilizados | Descripción |
---|---|---|
barra de aplicaciones | posición | El tipo de posicionamiento. |
Barra de herramientas | – | Barra de herramientas |
Botón | variante | La variante a utilizar. |
color | El color del componente. | |
ancho completo | Si es verdadero, el botón ocupará todo el ancho de su contenedor. | |
Campo de texto | variante | La variante a utilizar. |
margen | Si es denso o normal, ajustará el espaciado vertical de este y los componentes contenidos. | |
requerido | Si es verdadero, la etiqueta se muestra como requerida y el elemento de entrada será requerido. | |
ancho completo | Si es verdadero, la entrada ocupará todo el ancho de su contenedor. | |
identificación | El id del elemento de entrada. Utilice esta propiedad para hacer que la etiqueta y el texto auxiliar sean accesibles para los lectores de pantalla. | |
etiqueta | El contenido de la etiqueta. | |
nombre | Atributo de nombre del elemento de entrada. | |
escribe | Tipo del elemento de entrada. Debe ser un tipo de entrada HTML5 válido. | |
autocompletar | Este accesorio ayuda a los usuarios a completar formularios más rápido, especialmente en dispositivos móviles. | |
Etiqueta de control de formulario | control | Un elemento de mando. Por ejemplo, puede ser una radio, un interruptor o una casilla de verificación. |
etiqueta | El texto que se utilizará en un elemento de etiqueta envolvente. | |
Caja | valor | El valor del componente. El navegador utiliza «on» como valor predeterminado. |
color | El color del componente. | |
Enlace | href | Dirección de enlace. |
variante | Aplica los estilos de tipografía del tema. | |
Cuadrícula | envase | Si es verdadero, el componente tendrá el comportamiento del contenedor flexible. Deberías envolver artículos en un contenedor. |
artículo | Si es verdadero, el componente tendrá el comportamiento de elemento flexible. Deberías envolver artículos en un contenedor. | |
Tipografía | variante | Aplica los estilos de tipografía del tema. |
Envase | componente | El componente utilizado para el Node raíz. Ya sea una string para usar un elemento HTML o un componente. |
anchura máxima | Determine el ancho máximo del contenedor. El ancho del contenedor crece con el tamaño de la pantalla. Establézcalo en falso para deshabilitar maxWidth. |
-
Importación de los componentes anteriores: Tenemos que importar estos componentes antes de poder usarlos en nuestro proyecto escribiendo declaraciones de importación para cada componente en nuestro archivo index.js junto con las declaraciones de importación necesarias de React y ReactDOM.
JavaScript
import React from
"react"
;
import ReactDOM from
"react-dom"
;
import AppBar from
"@material-ui/core/AppBar"
;
import Toolbar from
"@material-ui/core/Toolbar"
;
import Button from
"@material-ui/core/Button"
;
import TextField from
"@material-ui/core/TextField"
;
import FormControlLabel from
"@material-ui/core/FormControlLabel"
;
import Checkbox from
"@material-ui/core/Checkbox"
;
import Link from
"@material-ui/core/Link"
;
import Grid from
"@material-ui/core/Grid"
;
import Typography from
"@material-ui/core/Typography"
;
import Container from
"@material-ui/core/Container"
;
-
Creación de la función Signing: Primero, crearemos un elemento contenedor dentro de la función SignIn que se usará para envolver todos los componentes.
JavaScript
function
SignIn(){
return
(
<Container component=
"main"
maxWidth=
"xs"
>
<div>
.
.
.
</div>
</Container>
)
}
ReactDOM.render(<SignIn />, document.getElementById(
"root"
));
-
Creación de un componente de la barra de aplicaciones:
JavaScript
<AppBar position=
"static"
>
<Toolbar>
<Typography variant=
"h6"
>Sign In</Typography>
</Toolbar>
</AppBar>
Salida: No incluimos ningún componente, solo hay un título.
-
Creación del componente de formulario de inicio de sesión: el formulario contendrá dos campos de texto, cada uno para el correo electrónico y la contraseña, una casilla de verificación para recordarme, un botón de inicio de sesión y algunos enlaces.
JavaScript
<form noValidate>
// Email Textfield
<TextField
variant=
"outlined"
margin=
"normal"
required
fullWidth
id=
"email"
label=
"Email Address"
name=
"email"
autoComplete=
"email"
autoFocus
/>
// Password Textfield
<TextField
variant=
"outlined"
margin=
"normal"
required
fullWidth
name=
"password"
label=
"Password"
type=
"password"
id=
"password"
autoComplete=
"current-password"
/>
// Remember Me Checkbox
<FormControlLabel
control={<Checkbox value=
"remember"
color=
"primary"
/>}
label=
"Remember me"
/>
// Sign In button
<Button type=
"submit"
fullWidth variant=
"contained"
color=
"primary"
>
Sign In
</Button>
<Grid container>
<Grid item xs>
// Forgot Password link
<Link href=
"#"
variant=
"body2"
>
Forgot password?
</Link>
</Grid>
<Grid item>
// Sign Up Link
<Link href=
"#"
variant=
"body2"
>
{
"Don't have an account? Sign Up"
}
</Link>
</Grid>
</Grid>
</form>
Salida: Al hacer este componente, hemos completado nuestro proyecto.
Código completo: este es index.js si borra la carpeta src y crea un solo archivo indes.js.
Javascript
import React from "react"; import ReactDOM from "react-dom"; import AppBar from "@material-ui/core/AppBar"; import Toolbar from "@material-ui/core/Toolbar"; import Button from "@material-ui/core/Button"; import TextField from "@material-ui/core/TextField"; import FormControlLabel from "@material-ui/core/FormControlLabel"; import Checkbox from "@material-ui/core/Checkbox"; import Link from "@material-ui/core/Link"; import Grid from "@material-ui/core/Grid"; import Typography from "@material-ui/core/Typography"; import Container from "@material-ui/core/Container"; function SignIn() { return ( <Container component="main" maxWidth="xs"> <div> <AppBar position="static"> <Toolbar> <Typography variant="h6"> Sign In </Typography> </Toolbar> </AppBar> <form noValidate> <TextField variant="outlined" margin="normal" required fullWidth id="email" label="Email Address" name="email" autoComplete="email" autoFocus /> <TextField variant="outlined" margin="normal" required fullWidth name="password" label="Password" type="password" id="password" autoComplete="current-password" /> <FormControlLabel control={<Checkbox value="remember" color="primary" />} label="Remember me" /> <Button type="submit" fullWidth variant="contained" color="primary"> Sign In </Button> <Grid container> <Grid item xs> <Link href="#" variant="body2"> Forgot password? </Link> </Grid> <Grid item> <Link href="#" variant="body2"> {"Don't have an account? Sign Up"} </Link> </Grid> </Grid> </form> </div> </Container> ); } ReactDOM.render(<SignIn />, document.getElementById("root"));
Producción:
Publicación traducida automáticamente
Artículo escrito por 16shubhamagarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA