Задать вопрос
@werttqw

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

Есть компонент BaseCheckBox который эмитит событие и в него передаю 2 аргумента. В другом компоненте где использую BaseCheckBox слушаю @событие="metod" и внутри скрипта metod(arg1,arg2) получаю эти аргументы и все хорошо. Но что если мне нужно передать в @событие="metod(дополнительный аргумент который находится на этом уровне где использую BaseCheckBox )" если @событие="metod(arg1,arg2, дополнительный аргумент который находится на этом уровне)" то я теряю те аргументы которые передает сам чекбокс. Как получить и те и те данные?
  • Вопрос задан
  • 656 просмотров
Подписаться 1 Простой 6 комментариев
Помогут разобраться в теме Все курсы
  • HTML Academy
    Vue.js 3 — разработка клиентских приложений
    1 месяц
    Далее
  • Академия Эдюсон
    Frontend-разработчик + ИИ
    9 месяцев
    Далее
  • Stepik
    Frontend разработчик на HTML, CSS и JavaScript
    4 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 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)"
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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