@sirinotapple

Почему $emit('someEvent', 0) передает ивент 2 раза?

Здравствуйте
У меня есть родительский компонент (App.vue)
<template>
  <HelloWorld @change="handle"/>
</template>

<script>
import HelloWorldVue from "./components/HelloWorld.vue";
export default {
  name: "App",
  components: {
    HelloWorld: HelloWorldVue,
  },
  methods:{
    handle(e){
      console.log(e);
    }
  }
};
</script>

и дочерний HelloWorld.vue
<template>
  <div class="hello">
     <input type="file" @change="$emit('change', 0)">
  </div>
</template>

<script>
export default {
  name: "HelloWorld",

};
</script>

Но почему при выборе файла handle вызывается 2 раза то-есть в консоли сначала 0 а потом event? (мне нужен только 0)
0
Event {isTrusted: true, type: "change", target: HTMLInputElement, currentTarget: null, eventPhase: 0…}
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
@Akela_wolf
Extreme Programmer
У вас браузерное событие change "всплывает" в верхний компонент и ваше собственное событие change - туда же.

Собственно либо "разведите" название событий, либо остановите всплывание браузерного (модификатор .stop)

Документация Vue
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы