30. Rutas dinámicas con vue-router y useRoute | AbiDev

AbiDev
15 Aug 202314:02

Summary

TLDREn este episodio de 'Vida el Día', se presenta cómo crear una ruta dinámica en una aplicación web. El objetivo es que cada usuario acceda a la misma ruta, pero con datos personalizados según su ID. Se utiliza la documentación de View Router para establecer la ruta con dos puntos y el nombre del parámetro. Se crea una vista 'usuario-detalle' y se muestra cómo integrarla en un template base. A través de un ejemplo práctico, se explica cómo mostrar información específica del usuario, como nombre, correo electrónico y foto, utilizando un enfoque dinámico. Además, se discuten técnicas para manejar la carga de datos y la visualización de elementos mientras se espera la respuesta de la API, como mostrar un spinner. El video termina con una invitación a la audiencia para interactuar a través de suscripciones, 'me gusta' y comentarios.

Takeaways

  • 😀 El objetivo del video es crear una ruta dinámica en una aplicación.
  • 🔗 Se menciona que en un video anterior ya se preparó una serie de enlaces para esta ruta.
  • 🛠 Se explica que una ruta dinámica muestra datos específicos de cada usuario a través de un mismo patrón de URL.
  • 📚 Se hace referencia a la documentación de View router y cómo se utiliza la notación de 'dos puntos' para definir parámetros dinámicos.
  • 🖌️ Se crea una vista llamada 'usuario detalle' para mostrar información específica de cada usuario.
  • 📝 Se describe cómo se estructura el template base y se asigna a la vista 'usuario detalle'.
  • 🔑 Se discute la importancia del parámetro 'ID' para personalizar la información mostrada en la vista.
  • 📡 Se menciona el uso del componente 'Lazy' para cargar vistas solo cuando son necesarias.
  • 🔍 Se sugiere la necesidad de importar y utilizar un hook de View router para obtener parámetros de la ruta y gestionar la navegación.
  • 📱 Se habla sobre cómo mostrar información dinámica en la vista 'usuario detalle', como el nombre, correo electrónico y avatar del usuario.
  • 🛑 Se destaca la posibilidad de mejorar la experiencia de carga con indicadores de progreso mientras se obtienen datos del API.

Q & A

  • ¿Qué es una ruta dinámica en el contexto de la creación de aplicaciones web?

    -Una ruta dinámica es una ruta que muestra datos específicos de acuerdo a un parámetro que se le pasa, permitiendo reutilizar la misma ruta para diferentes usuarios o entidades.

  • ¿Cómo se identifican las rutas dinámicas en la documentación de View router?

    -Las rutas dinámicas se identifican en la documentación de View router con dos puntos seguidos del nombre del parámetro que se desea utilizar.

  • ¿Cuál es el primer paso para crear una vista dinámica en el script proporcionado?

    -El primer paso es crear una vista, en este caso llamada 'usuario detalle', que será utilizada para mostrar información específica de cada usuario.

  • ¿Qué es un template base y cómo se utiliza en el script para la ruta dinámica?

    -Un template base es una plantilla que se utiliza para construir la estructura de una página web. En el script, el template base es donde se especifica la ruta 'usuario detalle' que luego se rellenará con información dinámica.

  • ¿Cómo se define la ruta 'usuario detalle' en el script para incluir el parámetro ID?

    -La ruta 'usuario detalle' se define con un slash y el ID, utilizando el nombre de la ruta 'usuario' seguido de 'ID', donde 'ID' es el parámetro dinámico que se utilizará para mostrar información específica.

  • ¿Qué componente se utiliza para cargar la vista solo cuando se visita esa vista específica?

    -Se utiliza el componente 'usuario detalle' de manera que se cargue de manera Lazy, es decir, solo cuando se visite esa vista específica.

  • ¿Qué es un 'hook' en el contexto de View router y cómo se utiliza en el script?

    -Un 'hook' es una función que se ejecuta en ciertas etapas del ciclo de vida de una aplicación. En el script, se utiliza un hook para imprimir por consola y obtener los datos del usuario por medio de la ID cuando se monta la aplicación.

  • ¿Cómo se obtienen los parámetros de la ruta en View router?

    -Los parámetros de la ruta se obtienen utilizando un hook que permite acceder a la información de la ruta actual, en este caso, se utiliza 'useRoute' para obtener el ID del usuario.

  • ¿Qué es un 'API endpoint' y cómo se utiliza en el script para obtener datos de un usuario?

    -Un 'API endpoint' es una dirección URL que representa una solicitud específica a un servicio web. En el script, se utiliza un endpoint para hacer una solicitud fetch al pasar el ID del usuario y obtener los datos correspondientes.

  • ¿Cómo se maneja la reacción a los datos obtenidos desde el API en el script?

    -Se utiliza una constante reactiva llamada 'usuario' que se inicializa como nulo y se actualiza con los datos obtenidos desde el API utilizando la propiedad 'data' de la respuesta.

  • ¿Cómo se muestra la información del usuario en la vista 'usuario detalle'?

    -La información del usuario se muestra utilizando la constante reactiva 'usuario' para acceder a las propiedades como 'nombre', 'correo electrónico' y 'avatar', y se muestran en el template correspondiente.

  • ¿Cómo se podría mejorar la experiencia de carga de datos en la vista 'usuario detalle'?

    -Se podría mejorar la experiencia de carga utilizando una variable para controlar el estado de la solicitud al API, mostrando un spinner o indicador mientras se espera por la información.

Outlines

00:00

😀 Creación de una ruta dinámica

En el primer párrafo, se discute cómo crear una ruta dinámica en una aplicación. La idea es que cada usuario acceda a la misma ruta, pero que muestre datos específicos según su identificación. Se menciona la documentación de View router y cómo se utiliza la notación de dos puntos para definir un parámetro dinámico. Se crea una vista llamada 'usuario-detalle' y se explica cómo se estructura la ruta con un ID como parámetro. Además, se menciona el uso de componentes y cómo se puede cargar de manera perezosa la vista solo cuando es necesario.

05:01

🔍 Detalles de la vista de usuario y su implementación

El segundo párrafo se enfoca en la implementación de la vista 'usuario-detalle'. Se describe cómo se deben mostrar los datos del usuario, como el nombre, correo electrónico y foto de perfil, aunque se menciona que la foto no está disponible en ese momento. Se habla sobre la necesidad de importar un 'Hub de View router' para obtener los parámetros de la ruta y se sugiere cómo obtener los datos del usuario a través de una API utilizando el ID recibido en la ruta. Se muestran ejemplos de cómo se podría hacer la solicitud de datos y cómo manejar la respuesta de la API.

10:04

🚀 Consumo de datos y renderizado dinámico

En el tercer párrafo, se profundiza en el proceso de consumo de datos y renderizado dinámico en la vista 'usuario-detalle'. Se crea una constante reactiva llamada 'usuario' y se establece su valor inicial como nulo, con la posibilidad de ser un objeto de usuario o nulo. Se describe cómo se actualiza esta constante con los datos obtenidos de la API utilizando el ID dinámico. Luego, se muestra cómo se utilizarían estas variables para mostrar información específica del usuario en la vista, como el nombre, el correo electrónico y la foto de perfil. Se menciona también la posibilidad de mejorar la experiencia de carga con indicadores de progreso y se cierra el párrafo con un recordatorio de interacción y feedback del curso.

Mindmap

Keywords

💡Ruta dinámica

Una ruta dinámica es una característica en el desarrollo web que permite mostrar contenido diferente dependiendo de los parámetros recibidos, como un ID. En el contexto del video, se utiliza para mostrar información específica del usuario a través de una misma URL, pero con datos distintos según el ID proporcionado. Por ejemplo, 'usuario/detalle' con un ID diferente para cada usuario.

💡ID

El ID es un identificador único que se utiliza para distinguir entre elementos, en este caso, entre usuarios. En el script, el ID es un parámetro que se pasa a la ruta dinámica para obtener detalles específicos del usuario. Se menciona cuando se configura la ruta 'usuario/detalle/ID' y se usa para hacer una solicitud de datos al servidor.

💡Template base

Un template base es un archivo que sirve como estructura compartida entre diferentes páginas o componentes de una aplicación. En el video, se habla de crear un template base para la vista 'usuario detalle', que será reutilizado para mostrar la información del usuario sin tener que reinventar la estructura cada vez.

💡Componente

Un componente es una unidad de código reutilizable en el desarrollo de aplicaciones, que puede contener HTML, CSS y JavaScript. En el script, el componente 'usuario detalle' es creado para encapsular la funcionalidad y la presentación de la información del usuario, permitiendo así su reutilización en diferentes partes de la aplicación.

💡Lazy loading

Lazy loading es una técnica que implica cargar elementos solo cuando son necesarios, mejorando así el rendimiento de la aplicación. En el video, se menciona que la vista 'usuario detalle' se cargará de manera 'Lazy', es decir, solo se cargará cuando el usuario acceda a ella.

💡Fetch

Fetch es una API de JavaScript utilizada para hacer solicitudes a un servidor y recibir respuestas. En el script, se utiliza fetch para obtener datos del usuario a través de una solicitud HTTP al endpoint correspondiente, pasando el ID del usuario como parámetro.

💡Estado reactivo

Un estado reactivo se refiere a una variable cuya valor puede cambiar con el tiempo y que, cuando lo hace, provoca una actualización en la interfaz de usuario. En el video, se crea una constante reactiva llamada 'usuario' para almacenar y mostrar los datos recibidos de la solicitud fetch.

💡Desestructuración

La desestructuración es una técnica en JavaScript que permite extraer valores de un objeto o array de manera más legible y concisa. En el script, se utiliza la desestructuración para obtener directamente los datos del objeto 'Data' sin tener que acceder a ellos mediante 'Data.punto.Data'.

💡Spinner

Un spinner es un tipo de indicador de carga, generalmente un diseño giratorio, que se muestra en la interfaz de usuario mientras se procesa o carga información. En el video, se sugiere la posibilidad de mostrar un spinner mientras se espera la respuesta de la API para mejorar la experiencia del usuario.

💡API

API significa Interfaz de Programación de Aplicaciones, y es un conjunto de rutinas, protocolos y herramientas para construir software y aplicaciones. En el contexto del video, la API se utiliza para obtener datos de usuarios a través de una solicitud fetch, donde se accede a un punto final (endpoint) que devuelve información específica.

Highlights

Creación de una ruta dinámica en el proyecto para mostrar datos específicos de cada usuario.

Uso de enlaces para dirigir a los usuarios a una ruta específica con parámetros.

Explicación de cómo funcionan las rutas dinámicas según la documentación de View router.

Creación de una vista llamada 'usuario detalle' para mostrar información del usuario.

Método para reutilizar la misma vista para diferentes usuarios mediante el uso de ID.

Implementación de un enlace dinámico utilizando dos puntos y el nombre del parámetro.

Estructuración de la ruta para incluir el componente 'usuario detalle'.

Integración de Lazy loading para cargar vistas solo cuando son necesarias.

Revisión de un error en la consola relacionado con enlaces incorrectos.

Corrección del error y prueba de navegación a la vista 'usuario detalle'.

Diseño del template para mostrar información del usuario, como nombre, correo electrónico y foto.

Importación del Hook 'useRouter' para obtener parámetros de la ruta y manejar la navegación.

Uso del ID del usuario para realizar una solicitud de API y obtener datos específicos.

Implementación de un fetch para obtener datos del usuario a través de la API.

Manejo de datos reactivos y actualización de la vista con la información del usuario.

Visualización de información dinámica del usuario en la vista 'usuario detalle'.

Identificación de un tiempo de espera en la carga de información y sugerencia de solución.

Invitación a la audiencia a interactuar a través de suscripciones, 'me gusta' y comentarios.

Transcripts

play00:00

Hola a todos Bienvenidos a vida el día

play00:03

de hoy vamos a

play00:05

crear una ruta dinámica si bien en el

play00:09

vídeo anterior Ya dejamos listo no una

play00:12

serie de enlaces OK Para que al darle

play00:16

clic Pues nos lleve a una ruta y aquí en

play00:18

usuarios que tenemos una serie en las

play00:21

entonces La idea es que cada uno vaya a

play00:23

la misma ruta pero que esa ruta se

play00:25

comporte de acuerdo O sea que esa ruta

play00:29

muestra los datos de cada uno pero vamos

play00:31

a reutilizar la misma siempre por

play00:33

ejemplo aquí deberíamos irnos a de

play00:36

acuerdo con el ID No aquí le pasamos el

play00:38

parámetro del ID acá le pasamos otro

play00:40

parámetro Y así sucesivamente OK Bueno

play00:43

eso es lo que vamos a hacer ahorita eso

play00:46

se conoce como una ruta dinámica ahora

play00:48

miren aquí en la documentación de View

play00:50

router hay una parte que dice dynamic

play00:53

Road entonces la forma de hacerlo según

play00:57

la documentación es poniéndole dos

play00:59

puntitos y el nombre del cómo queremos

play01:01

que se llame el parámetro

play01:03

Bueno en ese caso lo que vamos a hacer

play01:07

primero va a ser crear una vista vamos a

play01:10

crear una vista que sea me usuario

play01:14

usuario detalle

play01:19

OK Vamos a llamar usuarios detalles

play01:22

Uy que me pase hoy día es de mañana

play01:26

tengo los dedos dormidos todavía ahí me

play01:29

comí una usuaria detalle

play01:36

disculpen que tengo estoy medio dormido

play01:39

todavía bueno entonces ahora lo que

play01:42

vamos a hacer es

play01:44

crear nuestro template base aquí le

play01:47

vamos a poner solo Vamos a ponerle

play01:50

usuario detalle

play01:53

ya luego vamos viendo cómo se va

play01:55

desarrollando y nada más ahora según la

play01:59

documentación Esta es la forma de

play02:00

crearlo en la ruta no entonces acá yo

play02:05

tendría que poner en el pad mi ruta se

play02:10

llama usuario detalle

play02:12

Ok y debo ponerle un Slash y el ID este

play02:17

se puede llamar como yo quiero ya le voy

play02:19

a poner

play02:23

usuario y le voy a poner

play02:27

porque le pongo usuario ID y seguido le

play02:32

pongo el componente

play02:35

componente

play02:40

reitero no que esta forma de hacerlo es

play02:44

como

play02:46

con Lazy quiere decir que se va a cargar

play02:48

esta vista Solo cuando se vaya a esa

play02:52

vista

play02:58

y es usuario detalle Bueno ahora mismo

play03:04

cuando se vaya a su usuario cuando haga

play03:06

clic aquí

play03:09

estamos aquí

play03:13

vamos a ver qué pasó que creo que ha

play03:15

habido un error consola

play03:18

[Música]

play03:22

efectivamente me comí el enlace

play03:26

entonces en usuarios si vamos ahora aquí

play03:30

ya nos lleva hacia usuario detalle no sé

play03:33

otra vez la u la puse adelante Qué cosa

play03:35

pero bueno entonces aquí en usuario

play03:38

detalle

play03:40

que lo que vamos a hacer

play03:43

Aquí esta ruta ya tenemos vamos a crear

play03:47

el template lo que va a mostrar aquí lo

play03:49

que queremos es Mostrar

play03:52

ok

play03:57

y vamos a mostrar este un carro Body

play04:01

para mostrar como que los datos

play04:06

esto sería como que lo que se estaría

play04:09

reutilizando aquí podemos poner

play04:13

un

play04:15

h3 que sea el nombre de la para el

play04:18

nombre de la persona nombre

play04:22

Vamos a ponerle también

play04:28

vamos a poner unos estilos ahí de un

play04:31

de unos 350 píxeles

play04:37

Vamos a darle

play04:39

para que se Centre

play04:42

maldito de 5 y bueno Ahí está más bonito

play04:47

ahora Ahí vamos a mostrar el nombre por

play04:50

acá podemos Mostrar este

play04:53

el correo electrónico ok

play04:59

qué más podemos Mostrar aquí Ah incluso

play05:01

podemos Mostrar la foto de la persona

play05:03

y mg y Bueno aquí iría la foto de

play05:08

momento no la tenemos

play05:10

qué iría el Avatar este

play05:13

a ver y eso es lo que vamos a mostrar

play05:16

Pero esto esta vista se supone que se

play05:20

debe funcionar para todos estos usuarios

play05:21

pero de manera dinámica OK Porque si nos

play05:26

damos cuenta lo que trae vamos a ver en

play05:29

Red lo que trae

play05:34

tu fecha fecha Aquí está en users miren

play05:38

lo que es lo que traemos aquí

play05:40

es un ID un avatar un email nombre y un

play05:45

Last listo nombre completo y media

play05:47

Avatar y el ID Entonces eso es lo que

play05:50

vamos a estar mostrando en el usuario

play05:52

detalle ahora nosotros en usuario

play05:54

detalle deberíamos importar un

play05:58

que se llama un Hub de View router

play06:03

que se llama hay dos

play06:06

uno que se llama ius router sin r y otro

play06:11

que es con r nosotros vamos a usar el

play06:12

que es sin r porque que es con r nos

play06:16

sirve para si nosotros quisiéramos

play06:18

Navegar de esta pestaña a otra

play06:20

que nos provee ese tipo de acciones y

play06:23

quisiéramos regresar en cambio el que no

play06:25

tiene r podemos obtener en cambio los

play06:28

parámetros que vienen en la ruta una

play06:31

cueri y ese tipo de

play06:33

cosas la ruta actual Ok ahorita mismo

play06:36

vamos a

play06:38

ver vamos a ver cómo lo podemos llamar

play06:42

vamos a llamarlo

play06:45

y como es un Hook una función tenemos

play06:47

que ejecutar esa función

play06:49

y ahorita mismo voy a imprimir por

play06:51

consola voy a llamar a mi ciclo de vida

play06:54

un Mountain de The View porque cuando se

play06:57

Monte la aplicación yo quiero que se

play06:58

haga un llamado a lápiz con ese ID y

play07:00

obtenga todos los datos

play07:03

no

play07:19

entonces La idea es que cuando se cargue

play07:21

la aplicación yo obtenga incluso esto

play07:24

Debería ser a sincroni y aquí debería

play07:27

obtener de Lápiz los datos del usuario

play07:30

por medio de la ID que me lo pasaron por

play07:32

para pero primero tengamos el ID vamos a

play07:36

hacer un un solo

play07:39

de un del rock punto

play07:43

para y Aquí vamos a ver qué es lo que

play07:46

tiene en parámetros que trae vamos a

play07:50

consola Y si yo le doy clic aquí

play07:54

miren me dice que el parámetro

play07:56

obviamente es un objeto que tiene una

play07:58

propiedad que se llama usuario ID ya

play08:01

entonces lo que debería hacer con este

play08:04

usuario y es consumir un en Point esto

play08:07

lo puedo hacer así

play08:10

Ok O lo puedo hacer también así

play08:14

como ustedes quieran voy a dejarlo así

play08:18

ahora lo siguiente es consumir un empate

play08:21

y para esto pues vámonos al usuario View

play08:26

para que igual para primero ver cómo

play08:29

funciona el apio aquí miren

play08:32

así No aquí te va a volver la lista de

play08:35

usuario Pero si tú le pasas el ID

play08:37

devolver solo el este objeto Ok ese

play08:41

único usuario que tú estás consultando

play08:43

Entonces Esa es la forma en la que

play08:45

nosotros vamos a interactuar Y si nos

play08:47

damos cuenta Va a venir todo dentro de

play08:49

una propiedad Data

play08:51

ya Okay vamos al código

play08:57

miren Entonces ahora lo que yo voy a

play08:59

hacer es esto de aquí usuario detalle

play09:03

una web y voy a hacer un fetch Ok Voy a

play09:09

hacer un fetch hacia este Point Es más

play09:11

voy a utilizar estas comillas

play09:14

ya para poder concatenar adentro y aquí

play09:17

lo que voy a concatenar es esto que está

play09:20

aquí

play09:28

Ok y aquí le pongo el ID que es Dinámico

play09:31

porque viene por medio de la ruta Ok

play09:33

esto de aquí tengo que guardarlo

play09:38

lo guardo en una variable

play09:40

bueno en este caso una constante y luego

play09:43

tengo la Data

play09:47

lo hago en Jason Ok todo esto ya lo

play09:50

vimos en el video anterior

play09:53

y ahora lo que voy a hacer con esta Data

play09:56

esta Data tiene una propiedad que se

play09:59

llama punto Data ahí vienen todos los

play10:01

datos que me interesa Okay entonces lo

play10:04

que yo voy a hacer por acá va a ser

play10:06

crear una constante que sea reactiva Ok

play10:09

y se va a llamar

play10:12

usuario

play10:19

Ahora aquí Se está quejando Ah claro es

play10:21

que no no le importa

play10:25

el red y aquí le voy a decir miren Aquí

play10:28

le voy a decir

play10:30

va a ser el primero va a ser nulo

play10:33

pero como estoy yo no te voy a escribir

play10:35

le voy a poner que el tipo puede ser

play10:38

y usuario

play10:40

o

play10:44

nulo Ok y acá cuando ya me venga esta

play10:47

Data Pues le voy a poner

play10:49

usuario.valeo es igual a Data punto Data

play10:53

incluso este Data punto Data mejor lo

play10:56

puedo desestructurar y sacar solo Data y

play10:59

así no tengo que poner Data punto

play11:02

bueno Y ahorita mismo

play11:06

usuario detalle 4

play11:09

en actualizar

play11:12

ahora sí ya estoy viendo esto que me

play11:15

acaba de volver el lápiz de gracias a

play11:18

este usuario que yo le pasé si yo le

play11:20

paso el del usuario 1 la información va

play11:22

a ser diferente Miren el correo

play11:24

electrónico Eve punto Hall y acá se

play11:26

llama George si se dan cuenta va

play11:28

cambiando eso es algo Dinámico

play11:31

y ahora lo que yo voy a hacer acá Es que

play11:34

voy a mostrar el usuario

play11:37

como quiera sería usuario punto

play11:41

fitness

play11:44

y acá voy a mostrar el usuario punto

play11:48

acá voy a mostrar el correo electrónico

play11:53

usuario punto email esto es una forma de

play11:57

hacerlo si estuviéramos usando gestores

play11:58

de estado podríamos hacerlo de otra

play12:00

forma

play12:02

y aquí voy a poner la imagen

play12:07

aquí sería

play12:09

usuario punto avatarco que se llama

play12:12

Elite

play12:14

avatarse y aquí igual le voy a poner una

play12:16

clase de bootstrap que es

play12:20

img Luigi creo que se llama

play12:26

vamos a

play12:30

ver creo que se llama así pero bueno

play12:33

igual el punto que se ve bien

play12:36

Okay entonces Esto es lo que ahorita

play12:38

mismo va a ser Dinámico mil ahorita me

play12:41

voy para usuarios

play12:43

Ahora sí casi se ve mejor ahorita

play12:49

usuarios Y si yo le doy aquí en este

play12:53

Ramos me muestra la información de ramo

play12:55

si yo le doy en

play12:58

otro más OK ahí se muestra la

play13:02

información de esta persona Ahora si se

play13:04

dan cuenta que hay como un tiempo de

play13:05

espera

play13:09

miren

play13:10

hay un tiempo de espera

play13:13

Pero bueno eso lo podemos manejar más

play13:15

adelante ahí lo que es eso se puede

play13:17

solucionar con una con una constante que

play13:21

es una variable para controlar cuando se

play13:24

hace el llamado lápiz y cuando ya llegó

play13:25

la información del Api mientras en ese

play13:28

transcurso se puede mostrar aquí una

play13:30

especie de spinner o cualquier cosa que

play13:32

indique que la información Se está

play13:34

consultando bueno entonces eso hasta

play13:37

este punto nos quedamos el día de hoy Ok

play13:40

nos vemos en el siguiente vídeo y no

play13:42

olviden de suscribirse y darle like y

play13:44

también este Comenten porque o sea

play13:47

quisiera que haya un poco más

play13:48

interacción saber qué tal les va

play13:51

apareciendo el curso está aprendiendo si

play13:53

yo voy muy rápido o si es necesario que

play13:56

quisieran que vaya un poco más rápido

play13:57

también todo eso dígamelo en los

play14:00

comentarios Chau

Rate This

5.0 / 5 (0 votes)

Related Tags
Rutas DinámicasDesarrollo WebAplicaciones WebVistas PersonalizadasProgramaciónTécnicas de CodificaciónFrontendBackendTutorialEducativo
Do you need a summary in English?