Как я могу установить значение по умолчанию для router.back () для элементов с глубокими ссылками в VueJS - PullRequest
1 голос
/ 10 июля 2020

У меня есть два (или более) VueJS маршрута, которые содержат ссылку на маршрутизатор, указывающую на тот же третий маршрут.

/ pages / list

<router-link :to="{name:'add-page'}">Add</router-link>

/ pages / other -list

<router-link :to="{name:'add-page'}">Add</router-link>

Если я помещу ссылку для размещения на третьей странице с помощью $router.back(), ссылка вернет меня в историю на предыдущую страницу, с которой я пришел.

Однако, если ввести маршрут add-page прямо в моем браузере, истории не будет. Я хотел бы установить значение по умолчанию для этой страницы и, желательно, не полагаться на глобальное значение по умолчанию.

Как лучше всего выбрать маршрут по умолчанию, если нет истории для определенного компонента c?

1 Ответ

0 голосов
/ 10 июля 2020

Подходит ли Navigation Guard под ваши нужды?

Вы могли бы использовать что-то вроде:

router.beforeEach((to, from, next) => {

    if (to.name === 'add-page' && to.) {

         //Your logic here
         //eg a redirect
         next({ name: 'MyBaseRoute' }) 

     } else {
        next()
     }    
})

или, если вам нужно просто для выбранного компонента вы можете использовать внутрикомпонентную защиту :

  beforeRouteEnter (to, from, next) {
    // called before the route that renders this component is confirmed.
    // does NOT have access to `this` component instance,
    // because it has not been created yet when this guard is called!
  },
...