События
События - более общий, чем изменения, вид сигналов
const bus = observable(null)
// подписываемся на событие
bus.$on('test', (e) => {
// обработка события
})
// выбрасываем событие
bus.$emit('test', {/* событие */})
В компонентах событий как таковых нет. Функционалом событийной шины могут обладать переменные скоупа. на эти события можно подписаться с помощью блока events с указанием переменной, на которую выполняется подписка
const timer = observable(null)
setTimeout(() => timer.$emit('tick'), 100)
export default () => {
return {
defaults: {
data: () => timer
},
events: {
data: {
tick: (e, scope) => {
// обработчик будет вызван через 100мс
}
}
}
}
}
Вторым аргументом обработчика события является скоуп компонента, который на это событие подписан