0
私はいくつかのVueコンポーネントを含むLaravel(5.4)アプリケーションを持っています。これらのコンポーネントのいくつかを通信させる必要があるので、私はEventBusを追加することに決めました。Eventue in vueが動作しない
app.js:
import VueResource from "vue-resource";
import Vue from "vue";
import Menu from "components/src/core/Menu.vue";
import MapWrapper from "./components/MapWrapper.vue";
import PaymentModal from "./components/PaymentModal.vue";
require("../sass/app.scss");
Vue.use(VueResource);
Vue.component("map-wrapper", MapWrapper);
Vue.component("my-menu", Menu);
Vue.component("payment-modal", PaymentModal);
// eslint-disable-next-line
new Vue({
el: "#app",
});
event.js:
<template>
<div style="height: 100%; width: 100%;">
<button @click="emitEvent">Click me</button>
</div>
</template>
<script>
import Vue from "vue";
import EventBus from "../event";
export default {
methods: {
emitEvent() {
console.log(EventBus);
EventBus.$emit("testEvent", "test");
},
},
};
</script>
<style>
</style>
成分受信しなければならない:イベントをトリガする
import Vue from "vue";
const EventBus = new Vue();
export default EventBus;
成分コードは以下の通りでありますイベント:
<template>
<div>
</div>
</template>
<script>
import EventBus from "../event";
export default {
computed: {
test() {
EventBus.$on("testEvent", ($event) => {
console.log("event triggered", $event);
});
},
},
};
</script>
<style>
</style>
問題は、ボタンをクリックすると、コンソールで記録されたEventBusが表示されますが、何も起こらないということです。受信コンポーネントはイベントを捕捉しません。
私には何が欠けていますか?
ここであなたが話したようでしたが、同じ問題:( – ste
例を働いている! https://jsfiddle.net/4do5ng92/ あなたがEventBusを追加する必要がありますように見えます。$リスナーにあなたのコンポーネントの上では次のように()メソッドをマウント –
はい!それは問題でした!私はcreated()に入れました、そして、それは今働いています!ありがとう! – ste