¡Bienvenida! Este es un curso especial de React Hooks

1

¿Qué aprenderás en el Curso Profesional de React Hooks?

2

¿Qué son los React Hooks y cómo cambian el desarrollo con React?

Introducción a React Hooks

3

useState: estado en componentes creados como funciones

4

useEffect: olvida el ciclo de vida, ahora piensa en efectos

5

useContext: la fusión de React Hooks y React Context

6

useReducer: como useState, pero más escalable

7

¿Qué es memoization? Programación funcional en JavaScript

8

useMemo: evita cálculos innecesarios en componentes

9

useRef: manejo profesional de inputs y formularios

10

useCallback: evita cálculos innecesarios en funciones

11

Optimización de componentes en React con React.memo

12

Custom hooks: abstracción en la lógica de tus componentes

13

Third Party Custom Hooks de Redux y React Router

Configura un entorno de desarrollo profesional

14

Proyecto: análisis y retos de Platzi Conf Store

15

Instalación de Webpack y Babel: presets, plugins y loaders

16

Configuración de Webpack 5 y webpack-dev-server

17

Configuración de Webpack 5 con loaders y estilos

18

Loaders de Webpack para Preprocesadores CSS

19

Flujo de desarrollo seguro y consistente con ESLint y Prettier

20

Git Hooks con Husky

Estructura y creación de componentes para Platzi Conf Store

21

Arquitectura de vistas y componentes con React Router DOM

22

Maquetación y estilos del home

23

Maquetación y estilos de la lista de productos

24

Maquetación y estilos del formulario de checkout

25

Maquetación y estilos de la información del usuario

26

Maquetación y estilos del flujo de pago

27

Integración de íconos y conexión con React Router

Integración de React Hooks en Platzi Conf Merch

28

Creando nuestro primer custom hook

29

Implementando useContext en Platzi Conf Merch

30

useContext en la página de checkout

31

useRef en la página de checkout

32

Integrando third party custom hooks en Platzi Conf Merch

Configura mapas y pagos con PayPal y Google Maps

33

Paso a paso para conectar tu aplicación con la API de PayPal

34

Integración de pagos con la API de PayPal

35

Completando la integración de pagos con la API de PayPal

36

Paso a paso para conectar tu aplicación con la API de Google Maps

37

Integración de Google Maps en el mapa de checkout

38

Creando un Custom Hook para Google Maps

Estrategias de deployment profesional

39

Continuous integration y continuous delivery con GitHub Actions

40

Compra del dominio y despliega con Cloudflare

Optimización de aplicaciones web con React

41

Integración de React Helmet para mejorar el SEO con meta etiquetas

42

Análisis de performance con Google Lighthouse

43

Convierte tu aplicación de React en PWA

Bonus: trabaja con Strapi CMS para crear tu propia API

44

Crea una API con Strapi CMS y consúmela con React.js

¿Qué sigue en tu carrera profesional?

45

Próximos pasos para especializarte en frontend

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Integración de íconos y conexión con React Router

27/45
Recursos

Aportes 21

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Script para los iconos:

<script src="https://kit.fontawesome.com/473d269aa9.js" crossorigin="anonymous"></script>

Para mejorar la aplicación e, incluso, por buena práctica, creo que deberíamos agregar un title a nuestros elementos en el HTML. Esto puede ayudar a la accesibilidad de la aplicación. Quedaría de la siguiente manera:

<i className="fas fa-trash-alt" title="Eliminar" />
<i className="fas fa-shopping-basket" title="Checkout" />

.

Font Awesome te da la opción de manejar el tamaño del ícono, yo utilicé el fa-2x para el basket (canasta) y se ve genial!

<i className="fas fa-shopping-basket fa-2x" />

Para iconos en React me gusta usar React Icons

Recomiendo utilizar React-Icons en sus proyectos. Contiene Iconos gratuitos de diferentes proveedores.

npm install react-icons --save

Importación

import { FaShoppingBasket } from "react-icons/fa";

Uso

<Link to="/checkout">
  <FaShoppingBasket />
</Link> 

Para todos los que les moleste importar directamente, con solo escribír el inicio de cualquier componente de librería o propio (siempre y cuando ya esté guardado al menos su estructura inicial) pueden auto-importarlo con la ayuda de visual studio o presionando (ctrl + espacio) para que les aparezca el mensaje para importar.

	<Link 'con el indicador de tipeo justo al final de link presionar ctrl + espacio'

Yo utilice
React | Font Awesome

Funciona excelente para importarlo directamente como libreria.

Hola, les dejo el avance de mi proyecto, hecho en Nextjs con Styled Components:

https://github.com/danyel117/platzi-conf-store

Commit clase 27.

27.-Integración de íconos y conexión con React Router

Para conectar la app podemos usar el href de toda la vida pero es mejor usar las herramientas que nos proporciona react ya que con esta herramienta mantiene la historia de donde nos estamos moviendo así como otros tools para movernos de manera correcta en nuestra app.

En este caso usaremos

import {Link} from 'react-router-dom'; //El cual usaremos para conectar la App

Para los icons use React-icons:

Instalación:
npm install react-icons

Uso: 
import { FaShoppingBasket } from "react-icons/fa";
<Link to="/checkout">
  <FaShoppingBasket title="checkout" size="2rem" />
</Link>

Solo traemos los iconos que necesitamos.
Aquí los pueden ver 
https://react-icons.github.io/react-icons

React icons, me preguntaba por que la importación aumentamos /fa, pero este depende del icono que usas, ejemplo:

FontAsome

import { FaShoppingBasket } from "react-icons/fa"
...
<FaShoppingBasket title="checkout" size="2rem" />
...

Bootstrap

import { BsFillTrashFill } from "react-icons/bs"
...
<BsFillTrashFill title="Delete" size="16px" />
...

En mi caso mis rutas personalizadas no envuelven al componente Header, no funciona, no me quedó de otra mas que usar href

App.jsx

export const App = () => {
    return (
        <>
            <Layout>
                <Router />
            </Layout>

        </>
    )
}

src/components/Layout.jsx

const Layaout = ({ children }) => {
    return (
        <div className="Main">
            <Header />
            {children}
            <Footer />
        </div>
    )
}

export default Layaout

src/components/header.jsx

const Header = () => {
    return (
        <div className="Header">
            <h1 className="Header-title">PlatziConf Merch</h1>
            <a href="/checkout">
                Checkout
            </a>
        </div>
    )
}

export default Header

También pueden usar React Icons: https://react-icons.github.io/react-icons

¡Hola! Estoy siguiendo este curso, pero usando NextJS + TypeScript + Tailwind. Aún no lo termino, pero voy agregando poco a poco las cosas que vamos viendo.
 
Si les interesa ver el proyecto hasta esta clase, les dejo el link del proyecto: https://github.com/d4vsanchez/platzi-conf-merch/tree/checkout-markup
 
He hecho varios cambios hasta el momento, fuera de que ya uso Tailwind como librería de utilidades, también he ido removiendo la cantidad de divs no utiles, usando tags con mejor contenido semántico y tratando de respetar al máximo las best practices de accesibilidad.
 
Así se ve mi proyecto hasta el momento:

Creo que esto podría funcionar también, react-icons: https://react-icons.github.io/react-icons

Alternativa a fontawesome:

La verdad es que lo iconos no me funcionaron, hice todo de la misma forma y no pasa nada.

El snippet para importar Link de React Router es imbrl

import { Link } from 'react-router-dom

Acá una mejor forma de usar los iconos de font awesome en react
https://fontawesome.com/how-to-use/on-the-web/using-with/react

Acá les comparto una librería que nos ayudan a tener varios iconos en React.
React Icons

Me gusta la forma de explicar de Óscar. Exceletne!

a