vue attribute javascript webpack vue.js vuejs2 vue-router

javascript - vue title attribute



¿Cómo puedo volver/enrutar en vue-router? (2)

Ok, para explicar esto simplemente:

Tengo 3x páginas.

  • Página 1 (Inicio)
  • Página 2 (Menú)
  • Página 3 (Acerca de)

La página 1 tiene un

<router-link to="/menu">

botón que al hacer clic se encamina a "/ menu".

Por ahora, la página 2 (Menú) tiene un

<router-link to="/">

y cuando se hace clic en este botón, vuelve a la ubicación anterior "/" Página 1 (Inicio).

Pero no quiero crear un componente para el enrutador para que cada página ''regrese'' a la página anterior (como si tuviera 100 páginas, esto podría ser una gran cantidad de trabajo de enrutamiento). ¿Hay alguna manera de hacer esto con vue-router? similar a window.history.back ()

Tengo curiosidad por ver si hay una manera de hacer esto, ya que no puedo encontrarlo en los documentos.

¡Gracias por adelantado! Juan


Puedes usar la navegación programática . Para volver, usas esto:

router.go(n)

Donde n puede ser positivo o negativo (volver). Esto es lo mismo que history.back (). Así que puedes tener tu elemento así:

<a @click="$router.go(-1)">back</a>


Si está utilizando Vuex , puede usar https://github.com/vuejs/vuex-router-sync

Solo inicialízalo en tu archivo principal con:

import VuexRouterSync from ''vuex-router-sync''; VuexRouterSync.sync(store, router);

Cada cambio de ruta actualizará el objeto de estado de route en Vuex . A continuación, puede crear el getter para usar el Objeto en el estado de ruta o simplemente usar el state (mejor es usar captadores, pero es otra historia https://vuex.vuejs.org/en/getters.html ), así que en resumen sería (dentro de los métodos / valores de los componentes):

this.$store.state.route.from.fullPath

También puedes colocarlo en el componente <router-link> :

<router-link :to="{ path: $store.state.route.from.fullPath }"> Back </router-link>

Por lo tanto, cuando utilice el código anterior, el enlace a la ruta anterior se generará de forma dinámica.