Vue router-link и пользовательское событие - PullRequest
0 голосов
/ 08 ноября 2018

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

* 1003 родительский, *

<Home @customEvent="myEventHandler" />

script-

export default {
methods: {
    myEventHandler() {
        console.log('yay')
    }
}

ребенок

export default {
...
mounted() {
    axios.get('api/link').then(res => {
        this.posts = res.data;
        this.$emit('customEvent')
    }
}

Это прекрасно работает для создания журнала yay с обычным компонентом, но когда я пытаюсь сделать что-то вроде этого -

<router-link to='/home' @customEvent="myEventHandler">Home</router-link>

Кажется, это не работает. Как вы прослушиваете пользовательские события от компонента, созданного с использованием router-link?

Заранее спасибо ...

1 Ответ

0 голосов
/ 08 ноября 2018

Это возможно. Вы можете только $emit событие от детей до родителя, вы не можете $emit событие между 2 различными маршрутизаторами

Излучение события от детей к родителю

enter image description here

Невозможно передать событие между двумя разными маршрутами:

enter image description here

Чтобы обойти это, вы можете создать компонент-оболочку как для компонента A, так и для компонента B, а затем использовать router-view для получения события

...