Por: Juan Andrés Núñez
Juan Andrés Núñez - juanwmedia

Especialista en tecnologías Web. Me dedico a enseñar desarrollo Web moderno a cualquier persona (físicamente en clase y a través de Internet) desde una perspectiva holística: teniendo en cuenta las competencias técnicas necesarias, junto a las habilidades personales o soft skills. Tienes más información en mi Web.

  • Vamos a hablar de otra forma de expresar el acceso a rutas. Más conveniente y sencillo de mantener.
  • Si te fijas, cuando utilizamos el componente RouterLink hacemos uso de la propiedad path de cada ruta establecida en la constate routes de router/index.js.
  • Aunque esto es perfectamente válido, imagina que en todo el proyecto tienes varias referencias al path de esa ruta, ¿que ocurre si un día decides cambiarla?. Obviamente no seróa el fin del mundo y con buscar y reemplazar puedes solucionarlo en unos minutos pero ahora piensa en que no es una ruta, sino varias. O quizás estas componiendo el path de forma dinámica en alguna parte...
  • Es mucho más sencillo usar la propiedad name que hemos establecido en cada ruta, porque aunque el path de la ruta cambie, podemos mantener el mismo identificador y referirnos a él.
  • Vamos a realizar los cambios en los componentes necesarios. Primero en AppHeader.
<nav>
  <RouterLink :to="{ name: 'Home' }">Directory</RouterLinkk>
  <RouterLink :to="{ name: 'Contact' }">Contact</RouterLink>
  <RouterLink :to="{ name: 'Legal' }">Legal</RouterLink>
</nav>
  • Luego en AppUser.
<RouterLink class="user__more"
   :to="{
      name: 'Info',
      params: { username: this.username }
    }"
>Show user info 👁</RouterLink>
  • Y por último en AppUserList.
<RouterLink :to="{ name: 'User', params: { username: user.login.username } }">
...
</RouterLink>
  • El proyecto sigue funcionando correctamente pero ahora tienes una mayor seguridad a la hora de cambiar aspectos de las rutas y sus parámetros, porque te estás refiriendo a ellas a través de su nombre.

No te pierdas ninguna novedad

Escuela Vue en Twitter

Participa en la Comunidad Escuela Vue

Comunidad Escuela Vue