平行组件(兄弟组件)通信
mounted 生命周期
$on 立即执行
$emit 快速触发事件
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>平行组件通信</title>
</head>
<body>
<div id="seg1">
<huahua></huahua>
<shuandan></shuandan>
</div>
<script src="https://cdn.bootcss.com/vue/2.6.11/vue.js"></script>
<script src="index.js"></script>
</body>
</html>
JS
var Event = new Vue();
Vue.component('huahua', {
template: '<div>我说:<input @keyup="on_change" v-model="i_said"></div>',
data: function () {
return {
i_said: ''
}
},
methods: {
on_change: function () {
Event.$emit('huahua-said-something', this.i_said)
}
}
})
Vue.component('shuandan', {
template: '<div>花花说:{{huahua_said}}</div>',
data: function () {
return {
huahua_said: ''
}
},
mounted: function () {
var me = this;
Event.$on('huahua-said-something', function (data) {
console.log(data);
me.huahua_said = data;
})
}
})
var app = new Vue({
el: '#seg1'
})