#javascript #vue.js #nuxt.js
#javascript #vue.js #nuxt.js
Вопрос:
Может кто-нибудь сказать, как я могу выполнить функцию после this.$router.go(-1), если это возможно. Я пробовал с помощью nextTick, но я думаю, что это неправильно.
Комментарии:
1. что делает эта функция? какая область для этого требуется?
2. идея в том, что ранее я должен был проверить, зарегистрирован ли пользователь, не зарегистрирован или является участником. если пользователь не является партнером или не зарегистрирован, я должен отправить обратно и показать панель, чтобы просто войти в систему или превратить его / ее в партнера
3. почему бы не сделать это раньше
router.go()
? в любом случае, отвечаю на вопрос вкратце.
Ответ №1:
Если функция, которую вы хотите выполнить, и функция router.go
находятся в одном и том же компоненте, после запуска router.go, если происходит смена страницы, это означает, что компонент размонтируется, что, в свою очередь, означает, что функция не может быть выполнена. Что, я думаю, вы можете сделать, так это поискать хук, который вам поможет.
Вы можете вызвать свою функцию внутри beforeRouteLeave
перехвата маршрутизатора. Проверьте реализацию в официальной документации маршрутизатора vue. Это сработает до вызова router.go
Вы также можете использовать один из крючков жизненного цикла компонента — beforeDestroy
. если ваш компонент размонтируется. Итак, вы можете запустить свою функцию внутри метода beforeDestroy .
Комментарии:
1. проблема в том, что то, что мне нужно выполнить в функции, находится не в первом компоненте, а в другом представлении, куда я отправляю пользователя.
2. Если функция, которую вы хотите выполнить, находится в другом компоненте, вы все равно можете использовать один из перехватов. либо перехват маршрутизатора
beforeRouteEnter
, либо перехваты жизненного цикла компонента vuecreated
, либоmounted