这篇文章主要为大家详细介绍了Vue.js中兄弟组件之间互相传值实例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!
兄弟组件之间互相传值,需要建立一个“中转站”(新的vue实例),并且需要主动触发。
实例上的$on方法来接受监听。
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>组件传值</title>
<script src="vue.js"></script>
</head>
<body>
<div id="box">
<child1></child1>
<child2></child2>
</div>
<template id="c1">
<h1>~~~~~~我是哥哥~~~~{{msg}} <button @click='fn'>点击</button></h1>
</template>
<template id="c2">
<h3>~~~~~~我是弟弟~~~~{{msg2}}</h3>
</template>
</body>
</html>
<script>
var Hub=new Vue(); // 1) 中转站,其中不需要设置任何参数
var vm=new Vue({
el: '#box',
components:{
child1:{
template:'#c1',
data:function(){
return {
msg: 'hello'
}
},
methods:{
fn:function(){
// 2) 主动触发监听(中转站触发监听)
console.log(this.msg); //hello
Hub.$emit('change',this.msg) //$emit触发监听方法
}
}
},
child2:{
template:'#c2',
data:function(){
return {
msg2: 'world'
}
},
// 创建完成 new Vue create mount
// 钩子函数
created(){
// 3) 接收监听 $on('事件名称',function(val){}) val是传递过来的值
Hub.$on('change',function(val){
console.log(val) //hello
// this.msg2 = val;
})
}
}
}
})
</script>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持四海网。
本文来自:http://www.q1010.com/184/3476-0.html
注:关于Vue.js中兄弟组件之间互相传值实例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。
关键词:vue.js
四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。