A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Haciendo match entre la URL y una ruta

10/13
Recursos

Aportes 14

Preguntas 5

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

les comparto como funciona de forma visual la funcion .SPLIT(鈥 '). lo que se ponga dentro del parametro de la funcion ser谩 el punto de division para el array que se va a crear. en el ejemplo vemos que se divide en 3 partes, dividas por el 鈥/鈥.

Nota: se puede poner cualquier caracter, y ese caracter ser谩 el que divida el array a crearse.

Creo que vengo muy bien en los cursos de desarrollo y de Js, pero de este taller no entiendo NADA!

hay un error de edicion en el video

Espero les ayude, lo comente para describirlo

No soy un experto en JS pero creo que este c贸digo

if (routePathSegs.length !== urlSegs.length) {
        return false;
      }

      return routePathSegs.every(
        (routePathSeg, i) => routePathSeg === urlSegs[i]
      );

hace en la pr谩ctica lo mismo que este

if (routePathSegs === urlSegs){
        return true;
      }

      return false;

Si me equivoco que me corrijan. Lo 煤nico que puedo entender es que por motivos de performance se decida usar esa l贸gica ya que me imagino un caso donde la lista de routas sega muy grande o porque no es fiable el c贸digo que pongo como sustituci贸n.

驴Por que comparamos el largo y no alguna otra cosa?

A continuaci贸n explico l铆nea a l铆nea lo que sucede en el m茅todo _matchUrlToRoute(urlSegs)

_matchUrlToRoute(urlSegs)
{
  // find recorre cada elemento del array routes y cuando la arrow function retorne true, 
  // entonces almacena el objeto. Ejemplo:
  // matchedRoute = { path: '/about', template: '<h1>About Me</h1>' }
  // Si no lo encuentra regresa "undefined"
  const matchedRoute = this.routes.find(route =>
  {
    // routePathSegs = 'about'
    const routePathSegs = route.path.split('/').slice(1);

    // Primera validaci贸n, si las rutas no tienen el mismo largo son diferentes y regresa false.
    // entonces find debe buscar en el siguiente objecto del array routes
    if (routePathSegs.length !== urlSegs.length) {
      return false;
    }

    // every compara letra a letra las dos rutas, si son iguales regresa true, de lo contrario regresa false.
    return routePathSegs
      .every((routePathSeg, i) => routePathSeg === urlSegs[i]);
  });

  // regresa el objeto matchedRoute = { path: '/about', template: '<h1>About Me</h1>' }
  return matchedRoute;
}

Documentaci贸n
M茅todo find
M茅todo every

No entend铆 el funcionamiento del every() 馃槙

Esta clase fue muy desafiante

Mientras m谩s veo contenido JS m谩s me doy cuenta de lo que me falta por aprender.

Si no estan claros acerca del metodo .Slice aqui les dejo un Enlace con la documentacion

Creo que todav铆a me falta mucho para aprender a programar de esa manera pero, me est谩 gustando de igual manera. 馃榿

f

en el navegador me da error porque no puede encontrar la variable route