@werttqw

Как передавать дополнительные аргументы в $emit события?

Есть компонент BaseCheckBox который эмитит событие и в него передаю 2 аргумента. В другом компоненте где использую BaseCheckBox слушаю @событие="metod" и внутри скрипта metod(arg1,arg2) получаю эти аргументы и все хорошо. Но что если мне нужно передать в @событие="metod(дополнительный аргумент который находится на этом уровне где использую BaseCheckBox )" если @событие="metod(arg1,arg2, дополнительный аргумент который находится на этом уровне)" то я теряю те аргументы которые передает сам чекбокс. Как получить и те и те данные?
  • Вопрос задан
  • 510 просмотров
Пригласить эксперта
Ответы на вопрос 1
@furashcka
vue намеренно ограничивает кол-во аргументов в своих стандартных функциях, только ОДИН объект, объясняется это тем что объект нагляднее читается в коде чем просто список аргументов:
mySuperFunction1(ignoreCache,  isReverse, removeEmpty, visible) { ... }
mySuperFunction2({ignoreCache,  isReverse, removeEmpty, visible}) { ... }

mySuperFunction1(false, true, true, true);
mySuperFunction2({
  ignoreCache: false,
  isReverse: true,
  removeEmpty: true,
  visible: true
})


В вашем случаи в $emit можно передавать массив

$emit(`name`, [arg1, arg2]);

А снаружи раскладывать массив стандартной es6 операцией:
@событие="metod(...$event)"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы