两个⼦组件之间的传值
举例:将A的drawerStart数值传递给B,来决定B的某个样式是否显⽰,并且点击
@click="changerDrawerStart"会改变 drawerStart的数值(这⾥可以使⽤监听watch,监听drawerStart的改变),通过$emit⽅法来实现传参的⽅式
组件A代码:
思路:如果两个⼦组件在同⼀个⽗组件上,可以将⽗组件作为⼀个桥梁(⽤⼀个中间值),中间商,先将决定性元素的⼦组件A的值先传给⽗组件,再通过⽗组件传给另外⼀个⼦组件B
具体步骤如下:
⼦组件A-主动组件
<template>
<div class="input-arch":>
<p class="archBody">
<img :src="archImg" alt="" @click="changerDrawerStart" v-show="drawerStart">
</p>
</div>
</template>
<script>
export default{
name:'inputSearch',//⼦组件的名称
data(){
return{
bottle什么意思drawerStart:fal,//初始化drawerStart
}
},
watch:{
drawerStart(t){
console.log(‘t’,t)监听drawerStart,查看drawerStart的改变,可以打印⼀下t,这⾥的t就是指代drawerStart的数值
this.$emit('drawerShow', t)//主要是通过$emit⽅法来实现传参的⽅式,第⼀个参数是⾃定义事件名称,第⼆个则是要传的数据
}2014上海中考
},
methods:{
changerDrawerStart(){//点击,改变drawerStart的值
this.drawerStart =!this.drawerStart
}
}
</script>
桥梁-⽗组件
<template>
<div class="left-nav-main">
<input-arch @drawerShow="drawerShow"></input-arch>//⼦组件A
生活大爆炸5<header-drawer//⼦组件B
动词时态:isShow='isShow'
></header-drawer>
</div>
</template>
<script>
export default{
data(){
return{
isShow :fal,//中间值isShow初始化
美国广播公司}
},
cardinalmethods:{
drawerShow(t){//将drawerShow的值(即t),赋给中间值isShow子公司英文
this.isShow = t
},
}
</script>
⼦组件B-被控制组件:
<template>
<div class="drawer">
<p v-show="!isShow"class="current-title">{{derTitle}}</p> </div>消释是什么意思
</template>
<script>
神探夏洛克第三季下载export default{
props:{//props接受⽗组件传递的值。puremature
isShow:{
type:Boolean,
default:[]
}
},
</script>
⽅法总结:两个步骤:
1.⼦组件A=>⽗组件:组件A使⽤$emit传递
2.⽗组件=>⼦组件B:组件B使⽤props接受