Una vez que el proyecto se haya clonado accedemos al direcotorio de la aplicación y ejecutamos el comando yarn o npm i para obtener todas las dependencias. En mi caso
cd simple-auth-app/
yarnEn este punto puede probar la correcta ejecución de tu aplicación, si estas usando yarn, con el siguiente comando:
yarn run dev- axios: Librería utilizada para hacer solicitudes HTTP
- eslint-plugin-react-hooks: Nos ayuda a controlar errores y nos brinda ayuda cuando tengamos algún error de codificación de nuestros hooks.
- redux: Gestor de estados de la aplicación.
- sass: Permite usar SASS en lugar de simple CSS (si instalas esta extensión asegúrate de cambiar las extensiones de tus ficheros css a scss, además reemplaza la extensión importaciones en los ficheros
App.tsxymain.tsx) - bootstrap: Framework de CSS
- react-hook-form: Librería para el manejo y validación de formularios
- react-router-dom: Gestor de rutas para React
En mis proyectos suelo utilizar la siguiente estructura de directorios:
├── src/
├── assets/
│ ├── images/
│ ├── icons/
│ ├── fonts/
│ ├── ...
├── components/
│ └── Component1.component.tsx
├── data/
├── hooks/
├── layout/
├── models/
├── pages/
│ └── page1/
│ ├── components/
│ └── Page1.page.tsx
├── redux/
│ ├── ...
│ ├── store.tsx
├── routes/
│ ├── routes.tsx
├── services/
├── utilities/
...
├── App.scss
├── App.tsx
├── favicon.ico
├── index.scss
└── main.tsx
...
- El directorio
assetscontiene todos los recursos multimedia como imágenes, fuentes, íconos, incluso aquí se pueden agregar archivos para la internacionalización de la aplicación en un directorioi18n. - El directorio
componentscontiene todos los componentes globales de tu aplicación por ejemplo: alertas personalziadas, laoders o componentes de paginación. - El directorio
datacontiene constantes que puedes usar en tu aplicación, aquí puedes incluir rutas, o enumeraciones. - El directorio
hookscontiene hooks personalizados que ayudarán a abstraer lógica de tu aplicación. - El directorio
layoutcontiene los elementos principales por los que se conforma tu aplicación, por lo general suelen ser cuatro: Header, Sidebar, Footer y Skeleton. - El directorio
modelscontiene los modelos que usarás en tu aplicación ya que estamos usando Typescript, es importante mantener un correcto tipado en toda la aplicación. - El directorio
pagescontiene las páginas por las que esta conformada tu aplicación, yo acostumbro a crear un direcotrio por cada conjunto de páginas (por ejemplo el directoriouserscontendrá las páginas:UsersList.page.tsx,UsersCreate.page.tsxyUserDetails.page.tsx) además puedes crear un subdirectorio componentes en caso de que todas estas páginas compartan componentes. - El directorio
reduxcontiene la configuración del estado global de neustra aplicaicón, esto lo veremos más adelante. - El directorio
routescontiene un archivo con la definición de las rutas de tu aplicación. - El directorio
servicescontiene la definición de axios para las peticiones HTTP, aquí puedes crear interceptores que te ayuden a agregar cabeceras o manejar los errores de mejor manera. - Finalmente, el directorio
utilitieslo puedes usar para alamcenar funciones globales en tu aplicación por ejemplo: una función de conversión de divisas, un formateador de fechas, etc.
- Website - www.bryan-aguilar.com
- Medium - baguilar6174
- LinkeIn - baguilar6174
- Email - bryan.aguilar6174@gmail.com
Actualmente este proyecto contiene un simple login (fake) usando el localstorage, se puede hacer uso de alguna api de autenticación.