两个⼦组件之间的传值
举例:将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{
drawerStart:fal,//初始化drawerStart跳格子
}
},
watch:{
drawerStart(t){
console.log(‘t’,t)监听drawerStart,查看drawerStart的改变,可以打印⼀下t,这⾥的t就是指代drawerStart的数值
this.$emit('drawerShow', t)//主要是通过$emit⽅法来实现传参的⽅式,第⼀个参数是⾃定义事件名称,第⼆个则是要传的数据
}
},
methods:{珍惜生命的作文
changerDrawerStart(){//点击,改变drawerStart的值
this.drawerStart =!this.drawerStart
}
}
</script>
下定义的例子
桥梁-⽗组件
<template>
<div class="left-nav-main">
<input-arch @drawerShow="drawerShow"></input-arch>//⼦组件A
<header-drawer//⼦组件B
:isShow='isShow'
></header-drawer>
内痔用什么药</div>
</template>
<script>
export default{
data(){
return{
isShow :fal,//中间值isShow初始化
}
},
行业前景分析methods:{
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接受⽗组件传递的值。
isShow:{
type:Boolean,
default:[]
}
},
</script>
孕妇能吃生菜吗⽅法总结:两个步骤:
1.⼦组件A=>⽗组件:组件A使⽤$emit传递
2.⽗组件=>⼦组件B:组件B使⽤props接受