Vuejs роутер слушает события - PullRequest
0 голосов
/ 21 января 2020

У меня есть компонент, в котором реквизит проходил по маршруту (https://router.vuejs.org/guide/essentials/passing-props.html). Мой вопрос заключается в том, как мне прослушать испущенные события из компонента, чтобы я мог мутировать пропы, переданные по маршруту?

В моем маршруте у меня есть что-то вроде

...
{
    path: "details/:id?",
    name: "booking.details",
    component: BookingDetails,
    props: true
}
...

И внутри компонент у меня есть реквизит

...
props: {
    invoice: {
        type: Object,
        required: false,
        default: () => ({})
    }
},

...

methods: {
    save () {
        this.$emit('reset-invoice') // where do I capture this event
    }
}

...

Ответы [ 2 ]

1 голос
/ 21 января 2020

Если я правильно понял ваш вопрос, компонент прослушивания будет <router-view>, поэтому:

<router-view @reset-invoice="resetInvoice"></router-view>

И в любом компоненте это представление маршрутизатора отображается:

{
  methods: {
    resetInvoice() {
      // ...
    }
  }
}
0 голосов
/ 21 января 2020

Вы должны следить за маршрутом и устанавливать реквизиты, передаваемые с маршрута, как показано ниже

watch: {
    '$route' (to, from) {
          this.user_id = this.$route.params.id
    },     
}
...