Как вызвать функцию из другого компонента во вью?
есть компонент block1.vue
там есть
<p class="test1" @click="func()">Сontact</p>
есть block2.vue там нужно вызвать эту же функцию но так не будет ра
<button class="test2" @click="func()">Block</button>
Ответы (1 шт):
Автор решения: Виктор Карев
→ Ссылка
Проще всего было бы перенести функцию из компонента в экземпляр Vue и вызывать таким образом: $root.func(). Но тогда компоненты становятся жёстко привязаны к экземпляру.
Поэтому мы их отвяжем через механизм событий - отправим экземпляру событие 'test':
<button class="test2" @click="$root.$emit('test')">Block</button>
a в экземпляре событие будем обрабатывать:
methods: {
func: function () {
}
},
mounted: function () {
$on('test', $this.func);
}