Vue.js devtools не захватывает излучение в смонтированном

Похоже, что когда я пытаюсь испустить событие в смонтированном режиме, он не срабатывает! поэтому он не отображается в devtools

main.js

const app = new Vue({
    el: '#app',

    mounted() {
        console.log('asd');
        this.$emit("clicked", "someValue");

    }
});

-

<body>

    <div id="app">

       <h1>vuejs</h1>

    </div>

    <script src="https://unpkg.com/vue@2.5.16/dist/vue.js"></script>
    <script src="main.js"></script>   

</body>

Почему это? и как я могу это сделать?

vue.js,vuejs2,

0

Ответов: 2


1

Когда вы добавляете обработчик события в установленное событие жизненного цикла родителя для события, которое испускается в дочернем подключенном событии, обработчик не поймает событие, выпущенное дочерним, потому что обработчик добавляется после того, как ребенок уже выбрал событие. В принципе, цикл событий подобен этому.

Родитель создает ребенка Создает установленный дочерний родительский родитель. Очевидно, что происходят другие события жизненного цикла, но это последовательность, которая имеет значение в этом случае.

Если вы хотите обработать событие, испущенное в дочернем элементе, вам необходимо создать обработчик (вызов $ on) до установленного события ребенка.

Можно ли испускать из смонтированных в Вюйсе?


0

Он отлично работает - ваши console.logрезультаты как следует, и вы излучаете событие без проблем.

Однако в коде, который вы указали, вы ничего не задали, чтобы прослушивать испущенное событие ... Вот простой, надуманный пример того, как это сделать this.$on:

const app = new Vue({
    el: '#app',

    mounted() {
        console.log('asd');

        this.$on('clicked', function(value) {
            alert('clicked!' + value);
        });

        this.$emit("clicked", "someValue");
    }
});

Демонстрация: https://codepen.io/anon/pen/qKeWxJ

vue.js, vuejs2,
Похожие вопросы