Aprende API: crea una aplicación de búsqueda con JavaScript, TypeScript, React y Next. js en modo claro y oscuro | Zoë Davidson | Skillshare

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Aprende API: crea una aplicación de búsqueda con JavaScript, TypeScript, React y Next. js en modo claro y oscuro

teacher avatar Zoë Davidson, Software Engineer & Cinematographer

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Introduccion

      1:13

    • 2.

      Proyecto de clase

      0:35

    • 3.

      API y bases de datos

      0:44

    • 4.

      Next.js

      0:26

    • 5.

      Configuración de proyectos

      2:51

    • 6.

      Cómo diseñar la aplicación

      21:47

    • 7.

      Modo oscuro y Zustand

      9:54

    • 8.

      Cómo usar una API

      16:38

    • 9.

      Cómo agregar lógica de búsqueda

      19:55

    • 10.

      CONCLUSIÓN

      0:55

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

376

Estudiantes

5

Proyectos

Acerca de esta clase

Esta clase te enseñará todo lo que necesitas saber para conectarte a una API con la sintaxis de JavaScript y crear una aplicación web en el proceso. Aprenderás:

  • Qué es una API
  • Cómo obtener información de una API con JavaScript/TypeScript
  • Cómo trabajar con Next.js y la interfaz de usuario de material
  • Cómo usar la lógica de filtros con JavaScript/TypeScript

Mi nombre es Zoë, soy ingeniero de software y ex profesor de cine. Puedes ver mi trabajo aquí.

Esta clase es para cualquier persona que haya tenido interés en aprender a programar, o que esté buscando abordar una entrevista técnica en un futuro cercano.

Esta clase incluirá una guía paso a paso sobre cómo aprender a usar API desde cero, que incluye:

  • Cómo usar API en React
  • Cómo podemos filtrar los datos de la API
  • Cómo incorporar lógica en el filtrado
  • Cómo usar state

Una vez que hayas tomado el curso, ¡asegúrate de dejar un comentario sobre lo que te pareció el curso!

Materiales necesarios

- Computadora con conexión a Internet

- Editor de código como Visual Studio Code

- Navegador como Google Chrome

Recursos

Equipo de filmación

  1. Canon 5D IV
  2. Canon 24 - 70 f/2.8
  3. Amaran 60x - asequible y potente
  4. Desview T3 Teleprompter
  5. Montaje en escritorio para plataforma pequeña
  6. Sennheiser MKE 600
  7. Brazo de micrófono para recitales
  8. Zoom H4n Pro

Equipo de desarrollo

  1. M1 Macbook Pro 13"
  2. Teclado mágico de Apple
  3. Logitech MX en cualquier lugar
  4. Soporte doble para computadora portátil
  5. LG 4k 27"
  6. Silla de escritorio ergonómica - barata
  7. Bose QC 35 II
  8. AirPods Pro
  9. Monitor y soporte para Espresso (viaje) - increíble

Conoce a tu profesor(a)

Teacher Profile Image

Zoë Davidson

Software Engineer & Cinematographer

Profesor(a)

Hey! I'm Zoe, a software engineer, filmmaker, and former professor from Toronto, Canada. I have an MFA in Film from Howard University, and also do work as a software engineer.

In the past, I've worked for the University of the District of Columbia, the Academy of Motion Picture Arts and Sciences, Lionsgate, Huffington Post, and I'm a member of organizations like the Canadian Society of Cinematographers.

The films that I've worked on have been featured at festivals around the world, including Sundance, ABFF, Trinidad Tobago Film Festival, and CaribbeanTales.

Check out my latest work, here: zoeahdavidson.com

Ver perfil completo

Level: Intermediate

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. Introduccion: Es posible que hayas oído hablar de las API, pero ¿sabes cómo usarlas? Hoy, vamos a recorrer todo lo que necesitas saber para crear tu propia aplicación web usando API gratuitas. Hola, mi nombre es Zoe. Soy ingeniero de software y ex profesor al que le encanta educar a otros sobre cómo comenzar con la codificación He creado toneladas de sitios web y aplicaciones web usando React CSS, HTML. Siguiente S y más. Hoy utilizaremos la API gratuita de Rest Country para hacer esta aplicación web de búsqueda de país. Este proyecto nos permitirá aprender a usar el siguiente S y reaccionar, cómo interactuar e incorporar APIs en nuestros proyectos. Y cómo usar Javascript o Typescript para filtrar y devolver sucintamente los datos solicitados en función de la consulta de un usuario Comenzaremos con una visión general básica de qué son las API y por qué estamos usando a continuación. Sí. Y luego nos sumergiremos directamente en nuestro tutorial. El tutorial se dividirá en tres partes distintas. Primero, diseñaremos la aplicación web, luego la engancharemos a la API. Y finalmente, refinaremos la lógica de consulta para asegurarnos de que los usuarios obtengan exactamente lo que buscan. Este curso es para cualquier persona interesada en aprender a trabajar con una API en una aplicación web. Al final de este curso, podrás hacerlo todo por ti mismo. Empecemos. 2. Proyecto de clase: Proyecto de clase. El proyecto para esta clase es construir una aplicación web de búsqueda de países completamente funcional utilizando una API gratuita. Para ello, necesitarás acceso a una computadora y un editor de código como código de Visual Studio. También debes tener algo de comprensión de Javascript o escribir script así como HTML y CSS. Para hacer girar nuestra app, vamos a usar un framework llamado Next S, que usa React. También usaremos material I para algunos componentes básicos de estilo. Dejaré enlaces a cualquier activo y recurso que necesite en la pestaña Proyecto y Recursos justo debajo. 3. API y bases de datos: Api y bases de datos. Una API o una interfaz de programación de aplicaciones es un conjunto de reglas que permiten a los desarrolladores front-end crear, leer, actualizar y eliminar datos en el back-end, estas API son creadas por desarrolladores backend que utilizan lenguajes como Python, Ruby, Java Script y otros Las bases de datos, por otro lado, son donde viven los datos y se accede a ellos a través de estas API. Dependiendo del tipo de solicitud de API que se envíe desde el front-end, ya sea crear, leer, actualizar o eliminar, se devolverá un conjunto diferente de datos. Por ejemplo, si un nuevo usuario va a configurar una cuenta escribiendo su dirección de correo electrónico y contraseña. Una vez que golpeen Enviar, esa información será enviada a la base de datos y se creará un nuevo usuario. 4. Next.js: Siguiente S. En los años que han pasado desde que reacciona introdujo por primera vez muchos marcos se han construido y desarrollado a partir de ella. Un framework muy popular hoy en día es Next S. Next S proporciona una gran cantidad de optimización fuera de la caja, como enrutamiento de renderizado lateral de servi y el SEO mejorado Y como tal, es uno de los favoritos de los desarrolladores front-end. Lo usaremos en nuestro proyecto, así que vamos a sumergirnos y comenzar. 5. Configuración de proyectos: Empecemos a trabajar en este proyecto. La app que estamos buscando construir es algo así. Es una aplicación de búsqueda de país que cuando escribes el nombre de un país, realmente puedes obtener el resultado para ello. También deberías poder simplemente seguir adelante y filtrar por región. Entonces, en algún lugar que esté en África o en las Américas o en Europa, etcétera, etcétera. Y también, debería decir que también se puede cambiar a modos oscuros. Se puede activar el modo oscuro o el modo de luz. Y entonces, sí, vamos a construir esta aplicación usando esta API gratuita de Country Rest que se proporciona aquí. Entonces, como puedes ver, tenemos una API Country Rest que nos permite llegar a este punto final y luego recibir un montón de detalles diferentes. Para que podamos obtener el nombre, las banderas. Hay mucha información diferente. Entonces dejaré un enlace a este sitio web en la pestaña Proyectos y Recursos a continuación, para que puedas seguirlo y usarlo en tu proyecto. Y también la inspiración para este proyecto y el diseño para ello en realidad proviene de este sitio web llamado Front End Mentor. Ahí es donde realmente consigo muchos de mis proyectos para trabajar y construir proyectos, si quieres comprobarlo, front-end, o es un proyecto totalmente gratuito para usar, pero puedes agarrar el diseño aquí y vamos a estar trabajando con esta imagen aquí para construir nuestro proyecto. Sí, sigamos adelante y comencemos. Voy a empezar, como mencioné, vamos a estar usando la siguiente interfaz de usuario de material JS y escriba script. De hecho, he construido una plantilla que vamos a utilizar para trabajar realmente en nuestro proyecto. Aquí, voy a seguir adelante y conseguir que un repositorio comience a usar esta plantilla. Impresionante. Ahora se crea el repositorio. De hecho, podemos usarlo localmente para desarrollar nuestra aplicación de búsqueda de países. Y también voy a dejar un enlace tanto a la plantilla al repositorio que utilizo para esto que puedes usar eso para comenzar como punto de partida. Y también puedes revisar tu trabajo a medida que vas avanzando si quieres ver cómo terminó pareciendo el proyecto final . Bien, así que voy a seguir adelante y clonar esto. Impresionante. Y entonces sólo voy a seguir adelante y abrirla. Perfecto. Entonces lo siguiente que tenemos que hacer, como cada vez que clonamos un proyecto es que tenemos que instalarlo. Así que hagamos una instalación rápida de NPM. Bien, genial. Entonces ya está instalado. Solo deberíamos poder hacer MPM run dev. Impresionante. Y es comenzar en host local 3,000 y genial, tenemos nuestra aplicación en funcionamiento así que estamos bien para ir. Sigamos adelante y comencemos. 6. Cómo diseñar la aplicación: En esta sección, vamos a estar centrándonos mayormente en el estilo. Entonces, si te interesa más la lógica, podrías pasar a la siguiente lección. Bien, lo primero que quiero hacer como costumbre es crear una nueva carpeta para mis componentes. Entonces quiero seguir adelante y despejar esta siguiente página de GS. Entonces solo voy a aclarar todo en la sección principal aquí, salvo eso. También voy a quitar los estilos en el di aquí, esta búsqueda de país. Eso debería ser bueno por ahora cuando estamos viendo este proyecto de ejemplo. ¿Correcto? Tenemos un par de secciones diferentes con las que estamos trabajando, ¿verdad? Hay como esta sección de encabezado, hay esta sección de entrada, hay un filtro de región aquí, un selecto, lo veo como algunas secciones distintas. Ahí está el encabezado y luego está esta más grande, la propia pieza country real. Después está la exhibición de todas estas diferentes tarjetas. Vamos a romperlo en pedazos. Lo que vamos a hacer aquí, primero, voy a crear un contenedor para todo el asunto. Voy a llamarlo el contenedor de búsqueda Country. Eso sólo va a albergar todo lo que estamos trabajando. Fresco. Y usaremos Emmett y luego solo importaremos esto aquí. ¿Todo bien? Perfecto. Si revisamos esto el frente, vemos que tenemos nuestro contenedor de búsqueda de país ahí. Perfecto. Esto va a contener un par de cosas diferentes. Vamos a crear otro componente llamado header. Vamos a crear otro componente llamado, um, vamos a llamar a este País Buscar. Bien, e importaremos ambos al contenedor Country Search. Sólo voy a cambiar esto a una caja porque eso es como el, el material que a modo de hacerlo. Y eso solo nos permitiría usar diferentes apoyos usando X, X, si no has oído hablar de él antes El prop SX básicamente te permite acceder a los mismos apoyos con los que podrías agregar como un prop de estilo en un elemento regular Pero te permite hacer cosas especiales así como media queries y cosas así que no puedes hacer en el prop de estilo. Prefiero usar los elementos de los componentes muy siempre que sea posible cuando estén disponibles para todos nosotros. Verás que tenemos nuestro jefe de búsqueda de país. Muy bien, entonces mirando el diseño aquí, notarás que tenemos un poco de margen o relleno en cada lado, y luego es igual en ambos componentes, y luego tenemos la pieza más grande aquí. Bien, quiero acercarme a esto en varios pasos. Lo primero que quiero hacer, como mencioné, es que queremos darle estilo al proyecto real en sí. Así que vamos a trabajar en el estilo y luego pasar de ahí para ser básicamente querer estilizar estos de una manera que ambos puedan tener algún relleno a la izquierda y a la derecha. Vamos a saltar primero al encabezado. La cabeza también cambia a una caja. El encabezado tiene dos elementos principales. Tiene la guerra en el mundo y luego también tiene el botón de modo oscuro. Entonces vamos a empezar usando un elemento tipográfico, digamos, que vamos a usar, vamos a decir en el texto que estamos en el mundo, esto será de la variante H uno, porque cada página necesita tener uno H. Y entonces probablemente no va a ser el formato correcto, pero podemos lidiar con eso con x, ¿verdad? Sí, es un poco demasiado grande. Así que vamos a SX y después vamos a configurarlo para que sea tal vez tamaño de fuente uno Ram, tal vez dos Ram 1.5 Entonces vamos a hacer fuente esperar como 700. Bien, genial. Ese es el elemento uno. Y entonces el segundo es este botón. Y el botón dice modo oscuro como a. Sí, también hay un botón de botón. Lo siento. También hay un icono icono que es como una especie de media luna, luna creciente. Busquemos lunas. Y éste se ve bastante cerca, así que vamos a usar esto en nuestro botón, así que voy a usar. Fresco. Y ahí tenemos nuestra pequeña luna. Todo bien. Impresionante. Lo siguiente que vamos a querer hacer aquí es que vamos a querer poner esto en una fila. Entonces voy a usar los apoyos SS y solo voy a cambiar la pantalla a flex y guardar eso Voy a justificar el espacio de contenido entre, voy a alinear los elementos al centro. Impresionante. Sí. Bien, así que para el cabezazo ahora también sé que quiero algunos acolchados. Voy a hacer relleno de arriba y abajo va a ser una M e izquierda y derecha va a ser dos ram. Eso debería ser bueno por ahora. ¿Qué más tenemos que hacer? Queremos asegurarnos de que, oh sí, el color en realidad, si te das cuenta, es ligeramente diferente. De hecho, quiero establecer el color de fondo general de la aplicación para que sea así, gris claro, y luego este en realidad va a ser nuestro blanco. Voy a agarrar eso, solo voy a usar este seleccionador de color Solo voy a agarrar este color aquí mismo e increíble, ese va a ser el color del fondo real de toda la aplicación. Lo que quiero hacer aquí, creo que vamos a ir con índice. En realidad vamos a establecer el color de fondo aquí de este general para que sea ese color. Así que vamos a ir al color de fondo, configurarlo para que sea increíble. Y se puede ver que apenas cambió un poco aquí. Es un poco difícil de ver solo porque es solo como una especie de sección pequeña, Pero va a ser un poco más evidente ya que empecemos a trabajar un poco más en la manzana. La otra cosa que quiero hacer aquí es establecer el tamaño de este elemento, porque es una especie de cosa de una página. Quiero que la altura mínima del elemento sea de 100 ew alturas Eso va a ser el 100% de la altura de la vista que estamos tomando. Y entonces quiero que solo la altura regular o la, la altura máxima probablemente esté en forma de contenido. Y esto será más relevante una vez que empecemos a obtener un montón de resultados diferentes. Muy bien, voy a quitar estos estilos extra aquí. Bien, genial. Entonces, lo siguiente que vamos a querer hacer ahora es cambiar el color de fondo del encabezado. Entonces el encabezado, ahora vamos a volver aquí y establecer el color de fondo para que sea solo blanco, genial y apenas se puede ver, pero aquí hay una ligera diferencia. Voy a hacer una cosa más para distinguirla. Ya ves cómo hay esta pequeña sombra de caja aquí. Solo vamos a agregar una sombra de caja al fondo de esto, esta pieza de aquí. Entonces voy a copiar esto y luego agregarlo a nuestra cabeza. Y lo vamos a modificar un poco. Bien, así que sólo vamos a tenerlo desplazado, tal vez dos pixeles en cada dirección. Vamos a hacer que sea un gris claro. Guarde eso. Como pueden ver, solo tenemos una especie de diferenciación realmente básica entre los dos. Eso es lo suficientemente bueno por ahora. Sabes, creo que también podemos hacer cosas como el cambio en el color del botón y cosas así. No necesariamente como lo más importante que hay que hacer. Creo que el siguiente tipo de cosa más importante que hacer sería bajar la venta por el resto de esto. Bien, así que lo siguiente que vamos a hacer aquí es trabajar en nuestro contenedor de búsqueda de país. Entonces nuestro país busca, lo siento. Entonces en la búsqueda del país, va a ser un montón de elementos diferentes, bueno tres. Entonces vamos a cambiar a una caja. Primero vamos a tener un insumo, vamos a tener el selecto. Y luego vamos a exhibir todas las tarjetas, creo material. Tengo un componente de campo de texto de entrada de texto de texto. Y creo que vamos a querer usar como el esquema uno para esto. Así que solo voy a agarrar esta línea de código aquí y copiarla de nuevo en nuestro proyecto y agregarla como nuestro primer elemento. Entonces vamos a tener un campo de texto que importamos del material I. Y luego también tienen un componente Select Select. Y sólo vamos a agarrar todo esto aquí mismo y usarlo. Perfecto. Y solo tenemos que sumar todas estas importaciones faltantes para que no consigamos ningún error. Solo estoy usando esto como plantilla en este momento. Vamos a seguir adelante y cambiarlo para que se ajuste a nuestros propósitos. Bien, genial. Entonces tenemos nuestra entrada de texto y tenemos nuestro H o nuestro desplegable seleccione. Voy a hacer una cosa más, y voy a envolver estos en una caja porque en realidad vamos a tener nuestras tarjetas mostradas en esta página también. Así que vamos a salvar eso. Y entonces voy a cambiar el display de esto para que sea Flex. Guarde eso. Impresionante. Fresco. Entonces ahora están en una línea pero el espaciado no es correcto. Realmente correcto. Ahora mismo, el control de formulario está diciendo ancho completo. En realidad no queremos eso. Queremos que sea con tal vez como cinco rime, diez Ram, porque van a ser palabras, pero realmente no necesitamos que sea tan amplia Y entonces realmente vamos a querer que estos tengan espacio entre ellos también tengan espacio entre ellos. Entonces vamos a hacer lo mismo. ¿Listo para ir? Justificar el contenido. Vamos a ponerla en espacio entre seis tiempos. Fresco. Impresionante. Como notarás, todavía nos falta ese relleno en el exterior ahí. Entonces solo vamos a agregar otro S x pro a la caja exterior y agregar algo de relleno ahí. Así que sólo vamos a ir relleno y vamos a ir dos Ram por todas partes y decir eso, increíble, genial. Es un poco más en la fila. Ahora, lo último que quiero hacer con la entrada de texto es hacerla un poco más larga porque puedes ver que en realidad es bastante más larga. Y yo solo voy a lograrlo, vamos a establecer el ancho para que sea, ¿qué, 20 Ram? De hecho, digamos que es un ancho de vista 20 que el peso cambia con el tamaño real del ancho de la vista de pantalla en lugar M. Eso siempre será como 30% del ancho de la vista. Es un poco más receptivo. Haré lo mismo con el selecto aquí. Podría ser necesario cambiar eso a 2015. O 20. A lo mejor 15. Sí, se ve bien. Bien, genial. Y entonces éste en realidad puede ser un poco más largo, tal vez 40. Fresco. Eso debería ser bueno. Entonces otra cosa que noté, acabo de notar es que el color de fondo es en realidad blanco en la natación también, puse eso en blanco. Di eso. Bien, increíble, genial Así que tenemos una entrada de texto realmente básica, Tenemos nuestro selecto. Y luego vamos a hacer nuestra tarjeta desplegable solo para personalizar esto un poco más Mientras que aquí notaremos que el texto inicial es buscar país punto punto. Entonces queremos cambiar eso. En vez de que eso sea el laico, vamos a decir buscar un país y decir que entonces aquí dice edad. Realmente queremos que eso se filtre por región. Vamos a cambiar eso para filtrar por región. Eso lo vamos a decir. Hagámoslo un poco más, hagamos que este 20 sea perfecto. Um, y supongo el fondo de eso también debería ser blanco Di eso. Impresionante. Lo siguiente que queremos hacer ahora es cambiar las diferentes opciones reales aquí, Los elementos del menú. Lo que voy a hacer, en realidad voy a cerrar esto y voy a empezar con uno. Es África, América. Sigamos adelante y tecleándolos. Entonces vamos a hacer África. África, África. Y luego sólo voy a copiar y pegar estas pocas veces América. De hecho voy a hacer uno por encima y eso va a ser nuestro todo. Voy a añadir otra. Verás por qué voy a añadir esto más tarde, pero sólo voy a hacer uno. Eso es todo. Muy bien, América. Una cosa interesante de esta API, en realidad no es América. Está buscando, es América, como América del Norte, América del Sur, América del Sur. Desea querer cambiar el valor de este elemento del menú a América, a pesar de que la pantalla dice América. En realidad, podemos cambiar a América solo para ser semánticamente correctos Bien, bajando por la lista, vamos a cambiar este a Asia y cambiarlo a ti. Y lo que estoy haciendo aquí, por si acaso no lo has hecho, no estás familiarizado con este tipo de truco de teclado, estoy presionando el comando D para seleccionar la palabra en la que estoy trabajando. Y luego la siguiente versión de esa palabra, el siguiente duplicado de esa palabra. Entonces solo quiero presionar el comando D hasta que seleccione todo el número de versiones de esa palabra que están frente a mí. Entonces vamos a hacer Europa, y luego vamos a hacer Oceana Todo bien. Impresionante. Entonces tenemos nuestro filtro por región. Fresco. Lo siguiente que vamos a querer hacer, vamos a querer crear nuestras tarjetas para nuestro país. Entonces estas van a ser tarjetas que tienen algunas propiedades, algunos aspectos diferentes. Vamos a tomar la imagen, vamos a conseguir el nombre, la población, la región, y el capitolio Bien, genial. Entonces voy a crear otro componente para esto llamarlo tarjeta. Di eso ahora mismo, solo quiero ver cómo se ve con algunos datos simulados. Así que voy a volver a mi búsqueda de país y voy a crear algo llamado, o simplemente una matriz de cadenas para datos simulados. Entonces hagamos mo data. En realidad vamos a hacer una matriz de objetos. Vamos a hacer una variedad de países. Entonces hagámoslo a Alemania. Hagamos United. Estados de América, y haremos Brasil igual que en el ejemplo. Bien, genial. Eso lo guardaremos entonces. Ahora lo que quiero hacer, como pueden ver, tenemos nuestra caja con nuestro control de formularios, nuestro input y nuestro componente selecto. Queremos salir de esa caja y luego solo queremos hacer nuestro bucle a través de eso. Lo vamos a hacer aquí, vamos a ir a simulacros de datos. Entonces quiero mapear esos datos simulados para cada país. Quiero devolver una tarjeta tarjeta material de la tarjeta. Guarde eso. Ah, sí. Cada vez que usas el mapa, necesitas una llave. Entonces solo voy a poner la llave para que sea el nombre del país por ahora. Eso lo guardaremos. Bien, genial. Entonces, si voy a nuestra tarjeta, deberíamos simplemente, sí, tenemos tres países en nuestros datos simulados. Básicamente es el bucle para el número de veces que tenemos el país. Entonces tenemos tres tarjetas. Impresionante. Sigamos adelante y arreglemos un poco esta tarjeta En realidad tiene un componente llamado las diferentes tarjetas, pero queremos usar uno que tenga una imagen. Um, tal vez la tarjeta de medios. Creo que esta podría ser la mejor para nosotros. Entonces voy a seguir adelante y copiar esta información aquí mismo. Y solo vamos a crear la tarjeta, guardarla y simplemente agregar todas estas importaciones faltantes. Oh si, yo le di el nombre de la tarjeta. Bien, así que vamos a importar porque nombro el propio componente real, tarjeta. Hay un conflicto porque estamos importando tarjeta para material Y. He creado algo llamado tarjetas. Entonces voy a nombrar su tarjeta de tarjeta solo para que sea diferente y no haya ese conflicto. Bien, voy a quitar un par de estas piezas. Al igual que las acciones de tarjetas, no necesitamos eso. Literalmente solo estamos buscando mostrar información. Y entonces, sí, eso debería ser bastante decente. La altura de la imagen y el ancho máximo. Quiero que el ancho máximo sea tal vez 20 ancho de vista, tal vez solo vamos a establecer que sea el ancho definitivo porque se supone que debemos ser capaces de caber cuatro cruz 20 ancho. Y entonces realmente voy a volver aquí y debería envolverlo en una caja. Sí, déjame envolverlo en una caja. Y luego voy a convertir esto en una caja flexible. Eso voy a decir, genial, genial. Entonces ahora están empezando a extenderse. Agreguemos un país más. Hagamos Jamaica. Solo para que tenga los cuatro cruzados, puedo tener una idea de cómo se ve eso. Y entonces quiero justificar el contenido. Yo creo que quiero espaciar de manera uniforme . No hay espacio alrededor. Espacio. Espacio entre. Quiero espacio entre otra vez. Muy bien, Genial e increíble. Entonces sí, tenemos nuestras cuatro cartas ahí mismo. Todos dicen lagarto ahora mismo porque eso es lo que dicen los datos simulados. Pero vamos a trabajar en eso. Bien, solo quiero retocar esta pequeña pieza de aquí mismo. No hay suficiente espacio entre la tarjeta y la entrada real, así que voy a agregar algo de margen a esta caja superior, así que voy a ir al margen inferior. Perfecto. Y luego sólo voy a retocar un poco la tarjeta. Entonces voy a establecer la altura de la tarjeta real para que sea, digamos diez alturas de vista que demasiado pequeñas. A lo mejor 15, a lo mejor diez está bien. Y luego vamos a terminar pasando en algunas propiedades de, desde la propia API una vez que las obtengamos. Así que creo que somos bastante decentes en el estilo general. Sin embargo, hay una cosa más que quiero hacer, solo para permitirnos hacer y trabajar con modo oscuro. 7. Modo oscuro y Zustand: Lo último que vamos a querer hacer para estilizar es trabajar en nuestro modo oscuro Materialmente, realidad tengo esta característica realmente impresionante donde te proporciona un tema predeterminado que está en modo de luz Entonces, lo que voy a hacer es en realidad tratar de apuntar a ese tema del modo de luz y simplemente hacer que se mueva entre el modo claro y modo oscuro dependiendo del modo en el que queramos estar. Entonces vamos a encender, vamos a aprovechar eso para que nuestra aplicación aquí acceda a esto. Vive en un par de lugares diferentes. Si miramos nuestra aplicación de puntuación de aplicaciones, verás que aquí hay algo que proporciona el tema, un proveedor de temas y está proporcionando algo llamado el tema ligero. Entonces el tema ligero, el tema ligero se ha creado usando la función create theme aquí. Y vamos a simplemente comprobar que vive en los estilos en la carpeta de temas, en un archivo llamado light theme options. Entonces, si solo lo revisamos aquí mismo, podemos verlo como un archivo bastante básico y debería ser bastante fácil crear una versión en modo oscuro de esto. Entonces lo que voy a hacer es simplemente copiar todo esto y crear un nuevo archivo y llamarlo opciones de tema oscuro y pegar eso. Pero en lugar de donde quiera que diga luz, solo voy a cambiarlo a oscuro. Y estoy bastante seguro de que esto va a funcionar. Sólo vamos a dejarnos voltear entre oscuridad y la luz. Impresionante. Entonces tenemos que ir. Lo siguiente que voy a querer hacer ahora es que básicamente necesito insertar esto en el punto correcto. Entonces, si voy a app, básicamente lo que quiero hacer aquí y no va a estar solo aquí en esta parte de la app, va a estar por todas partes. Entonces lo que estoy pensando es que quiero instalar Zustand para poder gestionar esta sencilla pieza de estado global Podríamos apuntalar a Joe todo el camino, pero creo que esto va a ser un poco más limpio. Entonces, si no estás familiarizado con Zustan, Zustand es como una alternativa de Redux pero mucho Tiene mucho menos tipo de boilerplate para comenzar. Entonces buscamos a Zustand, básicamente es solo una forma de administrar el estado Si, este es el doc, solo lo voy a instalar muy rápido. Entonces voy a crear una tienda. Voy a crear una nueva carpeta llamada store. Voy a crear un archivo ahí llamado index TS. Lo que quiero hacer es literalmente crear una tienda de Zand Voy a copiar su formato aquí. Um, Oh, y es quejarse del tipo. lo arreglaremos. Sí, básicamente quiero crear este gancho llamado tienda, que va a crear una tienda que solo podamos tener nuestro estado global viviendo. Así que solo necesito dos apoyos es modo oscuro y va a ser falso para empezar Y luego quiero alternar el modo oscuro. Lo que eso va a hacer es quitar esto. Es el modo es modo oscuro, va a tomar ese pedazo de estado y luego solo lo va a poner en lo contrario de lo que es. Va a, digamos allá atrás, va a ser el estado opuesto es el modo oscuro. Cuando presiono Toggle dark mode, sea cual sea el modo oscuro, va a ser lo contrario de eso. Una última cosa que vamos a hacer aquí es agregar los tipos que vamos a crear. Esta es la tienda es modo oscuro, va a ser un lingote Entonces vamos a alternar el modo oscuro. Esto sólo va a ser una función sencilla que devuelva void. Entonces vamos a establecer tienda, tienda, estado. Sólo vamos a llamarlo tienda. Di eso y genial, ahora hemos arreglado nuestro error de tipo. Ahora podemos acceder a esta tienda desde cualquier parte de nuestro proyecto. Entonces si vuelvo a las aplicaciones X y ahora puedo engancharme a esto y básicamente acceder al valor de es Stark Boat. Entonces, cómo vamos a hacer esto es que queremos copiar esta funcionalidad aquí. Aquí vamos a entrar en nuestro componente, hacerlo un poco más grande. Y voy a ir constante es modo oscuro, vas a ir a la tienda. Eso vamos a importar. Oh, ¿sabes qué? Olvidé exportarlo. Asegúrate de exportar la tienda porque de lo contrario importarás la tienda equivocada. Entonces vamos a exportar tienda e importarla de tienda. Y van a declarar modo oscuro. Esto es todo lo que tienes que hacer para configurar el estado. Es súper sencillo, súper simple. Si no has visto mi otro video sobre cómo declarar, nosotros hacemos exactamente lo mismo. Esto está en el para hacer en proyecto. Es muy, muy sencillo, muy simple de usar. Pero entonces lo recomendaría encarecidamente usarlo porque, quiero decir, mira lo rápido que acabamos de configurar el estado. Entonces, en base a si es o no modo oscuro, quiero mostrar el tema claro o el tema oscuro. Entonces voy a hacer un chequeo rápido aquí. Entonces si es modo oscuro, quiero usar el tema oscuro. Y déjame importarlo y crear el tema oscuro. E importarlo, vamos a ir tema oscuro. Y si no es entonces vamos a querer hacer tema ligero y decir eso, increíble. Bien, así que lo siguiente que vamos a hacer es que tenemos que encenderlo de verdad. Porque ahora mismo no está haciendo nada. ¿Verdad? Nada está activando ese togle Entonces si vuelvo a la cabecera, quiero ir al botón de aquí. Y queremos hacer lo mismo. Queremos, queremos acceder al toggle, que era este formato aquí mismo. Y vamos a hacer Toggle Dark Mode. Y va a hacer lo mismo. Vamos a importar la tienda de la tienda y estado toggle Modo Oscuro. Vamos a salvar eso. Impresionante. Es reconocer que es una función. Y luego al hacer clic aquí, literalmente solo queremos llamar a toggle Modo oscuro. Si conectamos esto correctamente, cuando presiono el botón de modo oscuro, algunas cosas simplemente deberían oscurecerse y algunas cosas deberían quedarse Si le damos clic, increíble. Entonces no es perfecto porque hemos hecho muchas personalizaciones nosotros mismos como con los fondos aquí Pero este es un primer paso realmente bueno, así que sabemos que está funcionando. Ahora todo lo que tenemos que hacer es enganchar las otras piezas. Entonces verás que este trasfondo no cambia. Ese fondo no cambia, ese fondo no cambia, y este fondo no cambia. Así que tenemos un par de antecedentes que arreglar. Entonces si vuelves a, o en realidad podemos empezar aquí, así que si agarramos es modo oscuro de la misma tienda que es modo oscuro y guardamos eso. Entonces si acabo de hacer otro check en esta línea aquí mismo. Entonces si voy es modo oscuro y si lo es, quiero que sea. Volvamos a nuestro diseño. Quiero que sea de este color. Entonces déjame agarrarlo muy rápido. Esto es para el encabezado. En realidad, este color es el que quiero. Voy a agarrar eso. Si es modo oscuro, quiero que el color de fondo sea eso. Si no lo es, quiero que sea esto. Y guarda eso si lo alternamos. Impresionante. Trabajando muy bien. Fresco. Lo siguiente que quiero hacer es cambiar eso para el país. Busca en toda la app. Entonces eso va a estar aquí en nuestro índice. Aquí vamos a hacer lo mismo. En realidad podemos literalmente simplemente copiar el modo oscuro aquí. Pega eso ahí dentro. Y luego importar la tienda, guardar eso. Entonces vamos a cambiarlo a este color aquí. Agarra eso ahí, eso. Y entonces vamos a ir es modo oscuro y hacer la pregunta. Y vamos a hacerlo. Va a ser, si no lo es, va a ser que vamos a salvar eso entonces. Impresionante. Entonces, si lo hemos hecho bien, increíble. Eso cambia. Bien, Lo último que tenemos que cambiar son estos Toggle, creo que esos son lo mismo que este color de aquí arriba. Eso va a estar en nuestra búsqueda de país. Para que podamos hacer el mismo check in Búsqueda de País. Guarde eso. Importa eso. Ah, sí. Dondequiera que sea FFF Nags, cámbielos para que sean de este color Aquí para ir es modo oscuro y lo mismo aquí, modo oscuro. Y definitivamente hay una manera más sucinta de hacer esto. Esto es solo una especie de hacerlo rápido, guárdalo. Bien, impresionante. Entonces si le doy la vuelta al modo oscuro ahora funciona dulce. Muy bien, así que hemos cuidado y ordenado el modo oscuro para que podamos pasar más allá de nuestros estilos como pequeñas cosas, pequeños retoques que hacer, un poco de retoques para hacer en el camino, especialmente una vez que importamos nuestras imágenes y cosas así Pero esto es como un muy buen comienzo por ahora. 8. Cómo usar una API: Bien, así que si echamos un vistazo a nuestra información de API aquí, nuestro punto final, Ok. Básicamente podemos agarrar todos los países desde este único enlace. Ahora probablemente vamos a terminar filtrándolo, pero este es un buen lugar para comenzar. Vamos a querer agarrar esto. Ahora, tenemos que pensar en la jerarquía aquí, ¿verdad? Tenemos nuestro insumo, tenemos nuestro filtro, y tenemos nuestro auto. Ahora mismo está todo en el mismo componente. Y eso se hace intencionalmente para que esto sea un poco más fácil para nosotros mismos. Lo que vamos a hacer aquí está en realidad dentro del mismo componente es donde vamos a hacer nuestra búsqueda. Ahora en una especie de montaje más limpio, podemos empezar a separar estas piezas, pero como MVP, podemos empezar por juntarlo todo y conseguir una especie de versión básica de trabajo Cómo vamos a hacer eso es que en realidad vamos a llamar en un efecto de uso. Vamos a hacer un fetch de esta API y eso debería estar entre comillas co. ¿Qué fetch nos permite hacer? Si buscamos la documentación aquí, fetch nos permite esencialmente recibir una respuesta Básicamente, estamos enviando una solicitud. Es un método que usamos para tomar un recurso de cualquiera que sea ese punto final, y luego podemos transformar esos datos en algo utilizable. Lo que vamos a hacer aquí es que vamos a buscarlo, y luego vamos a encadenar un punto luego a él Entonces vamos a decir “buscar”. Entonces vamos a agarrar la respuesta porque queremos asegurarnos no siempre sabemos si nuestra respuesta es o no en formato Json o si es legible. Vamos a cambiarlo a Json. Vamos a ir respuesta a tomar esa respuesta y la vamos a convertir en Jon. Bien, entonces ahora tenemos una respuesta de Jason. Impresionante. Lo último que vamos a querer hacer, y en realidad deberíamos crear algo para guardar esto. Vamos a crear un objeto de datos o una variable de datos y vamos a establecer los datos. Cuando esto se haga, vamos a usar el estado. Los datos solo van a ser un objeto vacío. Ahora necesitamos importar estado, así funciona. Sí, eso lo hicimos. Hacer, entonces van a hacer uno más, ponerse, tomar datos y luego vamos a establecer datos para que sean datos. Vamos a salvarlo. Deberíamos estar bien para irnos. Una cosa que quiero hacer ahora es ver si esto realmente funciona. Quiero consolar y ver si estamos obteniendo nuestros resultados. Aquí la consola. Impresionante. Verás que aquí tenemos 250 resultados, que es el número de países. Y yo solo quiero, así no creamos infilooplet me refrescar la página que está Bien, y solo vamos a pasar una matriz vacía aquí para detener el bucle infinito. Entonces si solo nos refrescamos. Impresionante. Así que hemos conseguido que nuestros datos sean perfectos. Entonces, si miramos un dato individual aquí, si miramos a un país individual, voy a describir el primero de, así veremos que tenemos mucha información aquí. Bien, así que estos son Turcos y Kakos. Verás que hay como una tonelada, tonelada de información. Ahora no queremos sobrebuscar los datos porque van a ser consultas muy caras de ida y vuelta Entonces, lo que podemos hacer, como dice la API aquí, en realidad podemos simplemente recuperar los campos que necesitamos Entonces podemos hacer todos los campos de interrogación y luego es igual al campo que necesitemos, ¿verdad Entonces sabemos que probablemente necesitamos la bandera, necesitamos la población, necesitamos la región, el capitolio Y necesitamos el nombre siguiendo el formato de esta estructura de datos aquí. De hecho, podemos cambiar nuestra consulta, nuestro fetch on line 25 aquí Y así haremos todo, y luego iremos a los campos iguales, así que solo nos aseguraremos de que estamos haciendo lo correcto. Sí, los campos son iguales, y luego los separaremos con comas Bien, genial. Entonces vamos a hacer campos igual nombre. Necesitamos banderas, necesitamos capital, necesitamos población y necesitamos región. Y eso lo guardaremos. Y creo que eso es todo lo que necesitamos. Entonces, si nos refrescamos, aún debemos obtener 250 resultados. Consigue todos los países, pero si ves los datos ya son mucho menos. Obtenemos el capital, obtenemos las banderas y el formulario PNG y SVG. Obtenemos el nombre, obtenemos la población, y obtenemos la región. Impresionante. Entonces ya estamos obteniendo muchos menos datos y eso va a hacer que nuestras consultas sean mucho más fáciles. Perfecto. Entonces lo siguiente que vamos a querer hacer ahora, en realidad, si echamos un vistazo más. Notarás en realidad que los datos están en una forma muy interesante. El capital está en realidad dentro de una matriz. Así que básicamente queremos pasar estos datos a nuestras tarjetas, ¿verdad? Solo queremos que esto pase directo dentro de nuestras cartas. Vamos a querer tomar en toda esta información. Sí, hagámoslo así. Vamos a pasar, luego vamos a pasar bandera. Y eso va a ser bandera, Uy, país. Flagg. Y luego vamos a pasar población, y eso solo va a ser población del país. Y luego vamos a pasar por región. Y esa va a ser la región del país, entonces va a ser el nombre de país.Com Bien, entonces, ¿qué estoy haciendo aquí? Bien, estoy creando todos estos errores. Entonces estos datos, que en realidad, vamos a usar nuestros datos reales en un segundo, van a mapear a través de cada país. Entonces por cada país queremos ir y agarrar, y lo cambiaré en realidad, el nombre que vamos a querer para agarrar el país. Y luego queremos entrar en el nombre que se nos proporciona. Y queremos agarrar el nombre común porque el nombre común es el nombre con el que vamos a ir. También podrías ir con el nombre oficial, pero a veces el nombre oficial no es el nombre que tu usuario podría buscar. Entonces descubrí que el nombre común basado en la API es un poco mejor para ir con. Entonces queremos agarrar la bandera, ¿no? La bandera es la imagen real, la ubicación de la imagen que han subido a una CDN Yo sólo voy a ir con el PNG por ahora. Podríamos cambiar el SVG si quisiéramos. Depende totalmente de ti, pero vamos a ir flagg y esa va a ser nuestra bandera También queremos agarrar a la población y la población en realidad no está anidada Es como ahí mismo como un número. Así que sólo podemos ir país punto población y agarrar eso. Vamos a agarrar la región. Lo mismo que solo una cuerda. Entonces vamos a agarrar esa región. Y entonces la clave sólo va a ser el nombre de la llave va a ser el nombre del país. Country.name.com porque cada país debe tener un Awesome.com. Impresionante. Entonces lo que vamos a hacer ahora es que vamos a seguir adelante y vamos a pasar esto a nuestra tarjeta y básicamente configurarla para que pueda tomar todos estos datos. Entonces vamos a crear una interfaz aquí. Esto es solo para que podamos definir nuestro prop, tenemos el nombre que va a ser una cadena. Tenemos la región, que también va a ser una cadena. Tenemos a la población, que también va a ser una cadena. Tenemos la bandera, que va a ser una cadena. Oh, ¿sabes qué? En realidad, nos olvidamos de la capital. También necesitamos del Capitolio Capitolio. Y esta es una interesante. Por lo que en realidad va a ser Country Capitolio grupo cero Va a ser la primera cadena de esa matriz. El primer objeto de esa matriz, que es una cadena, será el Capitolio Eso también va a ser una cuerda. Guardar esa bandera de población de región. Creo que lo tengo todo. Todo bien. Y entonces voy a pasar esto a aquí, así nombra región, población, bandera, capital. Y voy a pasar apoyos. Voy al tipo props y guarda eso. Bien, genial. Entonces tenemos eso funcionando. Lo siguiente que probablemente voy a querer simplemente cambiar esto para usar datos porque me está dando muchos errores. Datos. Ah, y sabes qué, es, oh, me está dando un error porque no es del tipo array. Así que en realidad necesita ser una matriz de objetos. Así que para ser una matriz de objetos, probablemente también me haya dado errores porque los he establecido, básicamente he inicializado un tipo de esto Podría simplemente crear un tipo común, como un país. No tengo que pasarlo entre los dos. Si creo otra carpeta, creo tipos, voy archivo Indexador. Entonces cada país va a tener un nombre que es una cadena. Nombre va a ser, el nombre es una propiedad común que va a ser la cadena. Y entonces vamos a tener una bandera que va a tener una cadena de propiedad PNG. Y entonces vamos a tener una población que va a ser un número. Y van a tener una región que va a ser una cadena. Y vamos a tener un capital, que va a ser una matriz de cadenas. Bien, si puedo importar, si exporto el tipo de país, veamos si esto funciona y lo importo. ¿Importar? No, no, todavía quiere una especie de tipo básico. Bien, entonces oh, tal vez funcione en realidad árbol. Bien, genial. Así que simplemente crearemos el objeto aquí e inicializaremos esos Nombramos va a ser una cadena. Nombre va a ser de común, va a tener una propiedad común que va a ser de tipo string. Básicamente lo que esto está buscando es como un valor inicial antes de que la API se recupere. Lo que vamos a hacer es dárselo. Quiere saber bien banderas PNG aún no ha devuelto nada. ¿Qué queremos que sea hasta que obtengamos una respuesta? Así que vamos a escribir banderas y como sabemos por nuestra API, incluso podemos simplemente mirar nuestra respuesta inicial. En realidad, no creo que lo tenga arriba, pero sabemos que Flags tiene una propiedad PNG y solo vamos a inicializarla para que sea una cadena vacía por ahora Y luego sólo vamos a ir por la línea y hacer lo mismo. Entonces vamos a ir capital. El capital va a ser una matriz. Y va a ser una matriz vacía. O una matriz con una cadena por ahora puede leer mayúscula. En realidad, podría país. Déjame quitar este tipo. Bien, ahí vamos. Hacerlo mejor. Oh, yo porque lo deletreé mal. Capital, Di eso. Y población, recuento poblacional. Oh, solo necesito agregarlo. Entonces agregaremos población para que sea cero y haremos region para que sea una cadena vacía. Bien, increíble. Entonces creo que nos hemos deshecho de todos nuestros errores de tipo. Fresco. Así que estamos obteniendo tantos resultados que ni siquiera podemos mostrarlos todos. Necesitamos tener el flex wrap o algo así para que no obtengamos tantos resultados. Bien, para que podamos deshacernos de nuestros datos simulados aquí porque ya no los necesitamos. Guarde eso. ¿Qué otro error podemos corregir aquí? El número de tipo de población no es asignable al flujo de tipo. Oh, ¿es un tipo de cuerda? El tipo es una tira aquí, por lo que en realidad es el número de span. Fresco. Eso es una gran cosa del tipo de guión. Quiero decir que encontrará estos pequeños errores y se asegurará de que no los hagas como a lo largo de todo tu proyecto, pero bien, así que déjame seguir adelante y crear un wrap en esta caja. Impresionante, ahí vamos. Entonces tenemos todos nuestros países, debería haber 250 cajas. Lo que voy a hacer ahora es realidad utilizar estos datos en las propias tarjetas. Esperamos que nuestro componente de tarjeta solo le dé un poco de margen en la parte inferior solo para que se vea un poco más agradable Donde dice lagarto, vamos a cambiar ese nombre. Vamos a echarle un vistazo, en realidad parece muy pequeño. Vamos a la, el tamaño de la fuente para que sea como un carnero. Y vamos a cambiar el peso de la fuente para que sea unos 700 porque parece realmente en negrilla. Vamos a decir que tenemos nuestros nombres. Entonces necesitamos a la población, la región y al Capitolio. Todo bien. Usando nuestro cuerpo dos. Vamos a ir, voy a usar la etiqueta, así que son solo las etiquetas de tazón regulares les voy a decir en población entonces solo voy a copiar y pegar esto. El siguiente fue creo que era región. Región y la capital simplemente escribiendo capital que increíble. Entonces finalmente queremos acceder a la imagen, así que vamos a simplemente escribir aquí bandera porque esa va a ser nuestra fuente PNG. Impresionante. Básicamente, con un par de simples apoyos que hemos pasado desde nuestro país desde la API Literalmente los pasamos a nuestro componente de tarjeta y luego simplemente accedemos a ellos como lo haríamos pasando props o en cualquier otro lugar, y los mostramos en nuestra aplicación Nuestra app está 50% hecha, tal vez más. Hemos hecho como nuestro tipo de prueba inicial con la API y la lógica allí. Entonces va bastante bien. Ahora lo siguiente que vamos a querer hacer es que lo estamos. Bien, entonces tenemos nuestra app formateada y estilizada, pero lo siguiente que vamos a querer hacer es agregar algo de lógica, ¿verdad Porque ahora mismo si tecleamos algo que tecleamos en Francia, no pasa absolutamente nada. Entonces queremos agregar en esa lógica, y lo haremos en la siguiente sección. 9. Añade lógica de búsqueda: Bien, así que lo siguiente que tenemos hacer ahora es poner en esa lógica para asegurarnos que cuando alguien escribe en un país, en la barra de búsqueda de aquí arriba, realmente devuelva una respuesta. Ahora mismo, no hacemos absolutamente nada. No hay filtrado en ninguno de estos resultados. Entonces, sigamos adelante e implementemos eso ahora. Bien, entonces cómo vamos a empezar con esto es que esencialmente queremos filtrar por todos los países que tenemos como opciones, desde nuestros datos, desde nuestra llamada API. Estoy seguro, bueno, una forma en que podríamos hacer esto es como a través de solicitudes API. Pero en realidad podemos simplemente filtrar esto por el lado del cliente, como en función de los datos que ya recibimos de vuelta, ya que es una llamada muy, es una llamada de costo bastante bajo en relación con, sabes, una aplicación más grande que está recuperando como toneladas y toneladas de megabytes de Lo que quiero hacer aquí es que quiero ir a la búsqueda del país y vamos a hacer esto dentro de este componente. Lo que quiero hacer aquí, quiero, quiero crear una variable llamada los países filtrados y quiero establecerlos. Quiero inicializar esto para que sean datos. Sean cuales sean los datos, es lo que van a ser los países filtrados. Esto va a ser lo que recorremos. Si cambio datos para que sean países filtrados, vamos a dejar eso por ahora, ¿de acuerdo? Bien, así que sí, los países filtrados van a ser lo que recorremos, pero tenemos que configurarlo, así que tenemos que inicializarlo Cuando escribimos aquí, queremos que algo suceda, queremos que se lleve a cabo algún tipo de F. Podemos acceder a eso usando el prop on change en el campo de texto. Queremos básicamente algo así como filtrar países. Filtrar países, Filtrar países. Sé que voy a querer pasar el evento porque voy a necesitar apuntar ese valor ahí dentro. Vamos a crear este filtro países, synovus filtro constante Y pasando en ese evento vamos a decir que queremos establecer países filtrados en B. Queremos filtrar países y queremos filtrarlos . Queremos filtrar cada país por nombre de país, país. Y lo haremos en minúsculas para asegurarnos de que en realidad estamos obteniendo el mismo valor. Vamos a transformarlos a ambos. Queremos ver si el, el nombre común del país en minúsculas, si incluye algo en valor objetivo a minúsculas, son el mismo caso. No va a haber ningún desajuste ahí y eso debería funcionar. Estamos recibiendo este error porque necesitamos darle un tipo de países fríos y filtrados. Bien, así que en realidad estoy llamando a la función, bien. Bien, así que ahora lo tenemos configurando. Entonces está filtrando a través países filtrados para ver si ese es el valor. Bien, y entonces lo que queremos hacer ahora, queremos, queremos devolver eso, queremos mostrar esto, queremos mostrar países filtrados en lugar de datos y decir eso. Y creo, sí, aquí estamos recibiendo un error. Básicamente solo estamos obteniendo el valor predeterminado porque tenemos que esperar estos datos. Lo que queremos hacer en realidad establece países filtrados aquí. Entonces queremos establecer datos, entonces deberíamos querer establecer países filtrados. Así que podríamos simplemente ser capaces de deshacernos de los datos. Derecha. Bien. Y entonces auto hace eso. Bien, perfecto. Así que hemos filtrado países. Entonces ahora si escribo en Francia, increíble. Entonces es la búsqueda de Francia. Así que vamos a repasar lo que hicimos aquí. Entonces creamos esta función llamada países de filtro. Establece que los países filtrados sean lo que sean, entonces los inicializan los datos y luego queremos filtrar por cada país y buscar el país, el nombre del país, el nombre común Estamos transformando ese nombre común a minúsculas, y estamos comprobando si ese valor de cadena incluye lo que estamos escribiendo en nuestra barra de búsqueda aquí. Entonces si escribo, sabes qué, creo que también necesitamos, vamos a tener que corregir un par de errores. Pero si me refresco, funciona genial. Entonces notarás que ya hay un par de errores que tienes que corregir. Pero el concepto inicial está funcionando, así que estamos avanzando en la dirección correcta. Bien, entonces un error que acabamos notar es que si no hay nada ahí dentro, no lo restablece. Entonces veamos si podemos hacer un FL para establecerlo como el valor correcto. Entonces podríamos decir que si el valor objetivo es igual a esto, si es igual es solo una cadena vacía, queremos establecer países filtrados para que sean saltos de datos, datos más queremos establecer países filtrados para que sean lo que hemos hecho Bien, escribe eso y luego, sí. Bien, genial. Entonces si retrocedo el espacio ahora funciona. Impresionante. Ese es un error que arreglamos. Lo siguiente que vamos a querer hacer, así podemos filtrar por país, pero ahora mismo no podemos filtrar por región. Entonces queremos agregar la capacidad de filtrar por región también. Así que en realidad podemos empezar a utilizar este tipo de cambio de mango incorporado que se incluyó con nuestro elemento de formulario. Podemos simplemente cambiar el valor para ser región y vamos a, cambiaremos esto para que sea región, así que simplemente aprovecharemos la región del conjunto inicial. Bien, genial. Sí, básicamente podemos utilizar este evento de cambio de mango para establecer nuestra región. Ahora, cuando elegimos una región diferente, solo debería configurarla automáticamente. El tema aquí es que ahora vamos a necesitar filtrar por región y filtrar por país. Entonces tenemos que pensar en cómo vamos a hacer esto de una manera lógica. ¿Todo bien? Creo que lo que quiero hacer aquí es como una combinación de cosas. Quiero crear otro manejador. Entonces voy a crear handle typing y va a llevar un evento. Voy a crear otra variable, valor de búsqueda constante. Esto va a ser lo que escriban en esta entrada. Voy a crear una variable para sostener eso. Voy a ir al estado, voy a comenzar con un manejador de cadena stempty escribiendo se va a establecer el valor de búsqueda en el valor objetivo Y entonces voy a llamar a esto, teclean cuando alguien escribe en la app. Entonces va a hacer eso. Impresionante. Y sólo vamos a conseguirlo más allá. Paratipos. Impresionante. Fresco. Ahora tenemos ese valor de búsqueda almacenado para que puedas acceder en más de un lugar, este filtro de países podría terminar por desaparecer transformándose. Lo siguiente que quiero hacer es dentro como un uso efector use memo. Quiero verificar tanto la región, quiero verificar la región y tal vez verificar el filtro también. Entonces déjame comenzar con un memo de uso. Y lo que voy a hacer es que voy a crear una matriz vacía llamada países. Y entonces voy a hacer una comprobación si región no es igual a cadena, ¿verdad? Entonces sabemos que la región está comenzando como una válvula de cadena vacía. Si no es una cuerda, queremos hacer algo, ¿verdad? Si región no es igual a cadena, queremos establecer países para que sean datos. ¿O es filtrar datos? Datos. Filtra por país entonces. Si ese país, región igual igual a región, fresco. Sí, queremos verificar, queremos básicamente establecer esta matriz de países para que sean los datos que tengamos. Sí, los países van a ser. Tomando los datos, todos los datos que obtenemos de la APA, los vamos a filtrar por país. Si ese país tiene una región que coincide con la región a la que lo establecemos, va a entrar en la variable de ese país. Fresco. Entonces queremos establecer los datos filtrados, pero también queremos considerar qué configuramos los datos filtrados, como cómo entra en esto el texto, el bit de mecanografía. Déjame pensar en esto por un segundo. Bien, así que básicamente queremos pasar como una lógica similar. Entonces, si region hace eso, entonces queremos verificar el valor de búsqueda. El valor de búsqueda no equivale a cadena vacía, entonces queremos hacer esta comprobación, queremos establecer los países filtrados para que sean básicamente esto, ¿verdad? Queremos hacer esto, pero aquí abajo, así que vamos a tomar países, salvo eso. Entonces, en lugar del valor de punto objetivo, va a ser valor de búsqueda. Voy a salvar eso. No estoy seguro de trabajar porque básicamente solo tomamos qué es el valor de punto objetivo y lo guardamos como valor de búsqueda. Bien, genial. Entonces tenemos dos, si probablemente necesitamos que establezca el valor de búsqueda de algún otro, region no es nulo, ¿verdad? Queremos que los países filtren por eso. Si el valor de búsqueda no es nulo, queremos luego filtrar por los países. Pero si el valor de búsqueda es nulo, entonces solo queremos establecer países filtrados para que sean países, cierto, sin filtrado extra. La región hace igual. Nada como si no hay región, entonces queremos hacer una comprobación similar aquí, ¿verdad? Básicamente queremos volver a hacer esto pero luego configurarlo a data. Creo, sí, configurarlo a datos, pero en cambio queremos hacer el conjunto de países filtrados y lo vamos a hacer en datos, creo que es el país filtrado de datos. Lo haremos en archivado. Si el valor de búsqueda no es nulo, vamos a tomar los países filtrados y luego filtrarlos de lo contrario vamos a simplemente establecer los países filtrados para que sean datos, la región, si no hay región establecida, pero si el valor de búsqueda no es nada, todavía queremos filtrar por el país de búsqueda. Eso es algo que podríamos perder función de ese país filtrante porque en realidad no es tan útil. Pero si la región es, el valor de búsqueda también es una cadena vacía, queremos establecer los países de filtro a datos. Esto debería funcionar. Sólo tenemos que sumar nuestra dependencia. Por lo que debería ser región de datos y región de datos y valor de búsqueda. Guarde eso. Creo que eso debería funcionar. Creo que eso debería funcionar. Vamos a intentarlo. Vamos a Francia. Pero vamos y después intentemos filtrar por alcance alcance. Europa, ¿bien? Estados Unidos está bien. África. Sí. Todo bien. Así que funciona increíble. Fresco. Genial, genial, increíble. Todo bien. Fresco. Así que eso funciona muy bien. Entonces, lo siguiente, sí. Entonces lo siguiente que vamos a querer hacer, creo que lo que voy a querer hacer ahora es que quiero configurarlo. Yo quería que todos trabajaran. Yo básicamente quiero que puedas resetear la región porque ahora mismo sin el todo solo puedes configurarla. No puedes desconfigurarlo, ¿verdad? No puedes restablecerlo si está configurado en todos, para que también devuelva toda la región. Si hago region igual region es igual igual a igual, todo funciona, no, no funciona. Lo que voy a hacer aquí en realidad es simplemente cambiar el valor de todos para que sea una cadena vacía para que cuando vaya a África, América, Asia, y luego vuelva a todos, simplemente regrese de una cadena vacía. Realmente simple, limpio, arreglado, genial. Veamos qué más hay ahí. ¿Hay algo más que pueda hacer aquí? Creo que lo único que queda por hacer aquí es probablemente limpiarlo un poco. Dice que quiere países filtrados como dependencia, pero no sé si va a funcionar si hago eso. Déjeme decir eso y luego tratar. Oh, espera, lo siento. Yo no lo soy. Sí, no, se rompe si hago eso. Sí, así que no quiero hacer eso. Sólo voy a dejar eso fuera. Sólo voy a desactivar las dependencias exhaustivas para esta línea Fresco. Yo creo, ¿en realidad usamos países filtrantes? Al igual que si comento esto y lo elimino de aquí, ejecutarán las aplicaciones? Oh, eso es un bicho. No lo hace. Bien, así que no creo que en realidad, no creo que realmente necesitemos filtrar país. Entonces me voy a deshacer de ella y voy a deshacerme de la columna a ella aquí. Simplemente va a ser reemplazado por la escritura de manejadores, que esencialmente toma ese valor objetivo y solo le da una variable que soluciona ese problema. Uh, ¿qué más? ¿ Qué más podemos hacer aquí? Oh, podemos sacar esta ley de consola. Ya no necesitamos eso. Entonces, por datos, sí, esa podría ser la solución. Bien, esa fue la solución. Entonces estaba recibiendo este error donde si escribí un par de letras y me dirigía a una región, si volvía a todos, no lo estaba ordenando Entonces eso es porque yo erróneamente, cometí un error. Debería haber dicho datos en la línea 60 o debería haber dicho países filtrados, que era lo que estamos filtrando por línea 60 para que en realidad sean datos. Entonces solo vamos a usar datos, no vamos a usar países filtrados. Vamos a usar países filtrados simplemente no en ese momento. Impresionante. Creo que aquí tenemos todo lo que necesitamos. Creo que estamos bastante arreglados para ir bien. Supongo que otras cosas que podrías hacer con este proyecto es hacerlo mobiley responsive Entonces para que sea, ya sabes, se convierta en una especie de vista desplegable similar que tienen aquí como opción Ya sabes, cualquier filtro por región y es solo un país tras otro y hacer una versión móvil. Ese sería otro proyecto genial para hacer. Podrías retocar el modo oscuro, ya sabes, conseguir un mejor icono que esté un poco más acorde con el diseño. Un montón de cosas que aún podrías hacer si quisieras en este proyecto. Totalmente depende de ti si quieres seguir adelante con eso. Y luego también puedes agregar una especie de página individual aquí para los países individuales que realmente solo muestra su información allí. Así que aún queda mucho por hacer con este proyecto, pero sí, ojalá eso te haya sido útil y realmente hayas podido aprender a usar una API con la búsqueda de países y puedas trabajar con APIs en el futuro e incorporarlas a tus proyectos futuros. 10. CONCLUSIÓN: Hablamos mucho en este video desde los orígenes de reaccionar hasta construir tu propia aplicación web de búsqueda de países completamente funcional. futuro, deberías poder abordar cualquier proyecto de API que se te presente. Solo recuerda buscar algo cuando no estés seguro y peinar el desbordamiento de pila según sea necesario Me encantaría ver cómo decidiste implementar tu aplicación web. Así que por favor deja un enlace a tu código o al sitio alojado en la pestaña Proyectos y Recursos para que pueda ver todo el trabajo duro que has hecho. Leo cada comentario, cada reseña y miro cada envío de proyectos. Entonces, si tiene alguna pregunta, no dude en dejar un comentario en la sección de revisión a continuación o comunicarse conmigo directamente. Consulta mi página de perfil para obtener más información al respecto. Si quieres saber más sobre codificación, consulta los otros videos que tengo en mi página de perfil. También tengo videos en HTML y CSS disponibles en el sitio web de mi canal de Youtube. Los vincularé a continuación y en mi perfil si también te interesa aprender esos idiomas . Y voy a ver en la siguiente.