一个案例我明白了vue 父子组件直接的事件传递

父子组件值传递和数据传递

昨天程序中用到的,以前没搞懂 现学会的 做个笔记

背景:

uniapp微信小程序 UI框架:uview

需求:

两个页面共用一个自定义的Popup 弹出层 组件。

问题:

Popup 本身自带一个隐藏显示的属性。点击关闭后属性值变成了false,父组件无法第二次调起使用。

html
## 子组件
<u-popup v-model="show" mode="bottom" height="60%" @close="close">
//子组件代码省略  就是一个从通信录选人,然后输入留言的功能
</u-popup


##  父组件使用
<pop-custom v-show="show" :info="info" @itemclick="confim" @closePop="closePop" ref="child"></pop-custom>

script

## 父组件的方法

handleClick(item) { //调起子组件
    this.show = true;
    console.log(this.$refs.child);
    this.$refs.child.open();  //调用子组件的open()方法把子组件本身设为true可见 避免第二次调用失败问题
},

closePop() {
	this.show = false; //隐藏子组件的方法
},
    
confim(option) {
    console.log(option); //子组件传递回来的数据(子组件中的this.rdata)
    //本身业务逻辑
}

## 子组件的方法
close() {
	this.$emit('closePop', this.show); //实际是调用父组件的方法
},
open() {
	this.show = true;
},
confim() {
	//一些条件判断
    //向上传递 调用父组件的方法 并把数据传给父组件
	this.$emit('itemclick', this.rdata);
},
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嗬呜阿花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值