Хотите запустить функцию на 1-м маршруте, когда пользователь пойдет с 1-го маршрута на 2-й и 2-го на 1-й маршрут в Vue и Vuex - PullRequest
1 голос
/ 09 марта 2019

Я хочу запустить функцию на загруженном маршруте (1-й маршрут) и затем перейти на 2-й маршрут.Снова пользователь переходит со 2-го маршрута на 1-й.

Я хочу запустить функцию на 1-м маршруте, когда пользователь переходит со 2-го маршрута на 1-й маршрут в Vue и Vuex.

Я пробовал Vueхуки жизненного цикла, такие как Created, beforeMount, но ни один из них не работает.

Подскажите, пожалуйста, что мне нужно запустить и как он будет выполняться в проекте Vue.

Спасибо

1 Ответ

1 голос
/ 10 марта 2019

vue-router защита навигации вы можете определить глобальные перехватчики для вызова beforeEach изменения маршрутизатора или afterEach .

например, пример для защиты перед маршрутом :

//router.js

const router = new VueRouter({
  routes: [
    {
      path: '/night',
      component: nightComponent,
      beforeEnter: (to, from, next) => {
        const currentHour = new Date().getHours();
        if(currentHour < 6){
            next(); // this function will trigger the routing. in my example, i 
                   //call it only if its not morning yet.
        }
      }
    }
  ]
})

Вы также можете определить внутрикомпонентную защиту , дляпринять меры по изменению этого конкретного маршрута.

new Vue({
  el: "#app",
  router,
  data: {},
  methods: {},
  beforeRouteLeave (to, from, next) {
    // called when the route that renders this component is about to
    // be navigated away from.
    // has access to `this` component instance.
       if(confirm('are you sure you want to leave this page?')){
           next();
        }
      }
   }
})
...