父传子
1、在父组件中的子组件标签上绑定一个属性,挂载要传输的变量
2、在子组件中用props属性来接受,接受的格式props:[“自定义属性”]
3、直接使用接受的数据
父组件
<ul>
<li v-for="(item,key) in arr">
{{item}}
</li>
</ul>
<domone :suibian='arr'></domone>
**
子组件
**
export default {
name:"donone",
props:['suibian']
}
子传父
1、在父组件中定义一个方法
2、在父组件中的子组件标签上自定义一个事件,挂载1定义的方法
3、在子组件的方法中通过this.
e
m
i
t
(
)
来
调
用
父
组
件
的
方
法
,
要
传
输
的
数
据
是
以
实
参
的
方
式
来
传
递
t
h
i
s
.
emit()来调用父组件的方法,要传输的数据是以实参的方式来传递 this.
emit()来调用父组件的方法,要传输的数据是以实参的方式来传递this.emit(“自定义事件名”,“参数”)
4、在父组件的方法中接受这参数就行
子组件
<div>
<h1>我是二个组件</h1>
<button @click="send()">点击</button>
</div>
export default {
name:"dontwo",
data(){
return{
obj:{username:'jdfh',age:23}
}
},
methods:{
send(){
this.$emit('suibian',this.obj)
}
}
}
父组件
<domtwo @suibian='test'></domtwo>
data(){
return{
arr:[
{id:1,name:"zhgnsan",age:21}
],
obj:{}
}
},
methods:{
test(obj){
this.obj=obj
}
}
兄弟传值:
1、如果有共同的父组件,可以实用父传子然后再子传父
2、bus总线传值
1、定义空的vue实例来担任总线的位置
2、在要发送的子组件中引入总线,通过Bus.
e
m
i
t
(
)
来
派
发
事
件
,
将
要
传
输
的
数
据
以
参
数
的
形
式
传
递
3
、
在
接
受
的
一
方
引
入
总
线
,
通
过
B
u
s
.
emit()来派发事件,将要传输的数据以参数的形式传递 3、在接受的一方引入总线,通过Bus.
emit()来派发事件,将要传输的数据以参数的形式传递3、在接受的一方引入总线,通过Bus.on()来监听事件,接受参数