<html>
<head>
<title>$emit 和 $on</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="root">
<button @click="boost">觸發事件</button>
</div>
<script> new Vue({ el: '#root', data() { return { message: 'hello vue' } }, created() { this.$on('my_events', this.handleEvents) }, methods: { handleEvents(e) { console.log(this.message, e) }, boost() { this.$emit('my_events', 'my params') } } }) </script>
</body>
</html>
複製代碼
首先先看官方文檔 javascript
能夠看出,他主要是和$emit 配合使用。第一個是 事件 名稱(也能夠是一個數組,經過調試也能夠看出來)。 第二個是回調函數,也就是 事件的執行函數html
也是先看官方文檔vue
$emit鏈接java
官方文檔上說的是,附加參數會傳給監聽器回調,但事實上是npm
這個緣由是什麼呢? 我也嘗試了利用數組循環,一樣也不行。只會console.log 第一個,若是傳入的是一個數組,會直接把數組輸出api
請教各位大佬。數組