爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2899|回复: 0

Vue父子组件通信的3种形式

[复制链接]

新浪微博达人勋

发表于 2021-11-18 16:54:54 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
需求缘起:


我们在一个网站选择数据的时候,
省-市-县-站的选择控件是一个独立组件,
日期时间的选择控件是一个独立组件,
还有数据的类型、呈现方式等,都是独立组件,


父组件随时获得子组件的状态是不可或缺的,
子组件及时反馈状态,调整展示也是必不可少的。


父子组件的通信分3种形式:


1、父组件主动向子组件传递数据:


在子组件设置props,父组件以插槽形式调用子组件时,可赋值。


2、子组件主动向父组件传递数据:


在子组件写一个函数,向父组件发送信息:
sendMsgToParent:function(){
this.$emit("listenToChildEvent","xxxxxxxxxxxooooooooooo");}
在父组件引用子组件的插槽中设置一个监听函数:
<checkbox0 ref="refname" v-on:listenToChildEvent="getMsgFromChild"></checkbox0>
监听函数:
getMsgFromChild:function(data){console.log(data);}
注意:父子组件都用了listenToChildEvent


3、父组件主动抓取子组件的数据


注意这与2是不同的,2是子组件主动发送,3是父组件索取的。
父组件引用子组件时,使用ref属性:
<checkbox0 ref="refname" v-on:listenToChildEvent="getMsgFromChild"></checkbox0>
在网页加载好时,获得子组件的对象,
子组件变量"checked2"的提取方法如下:
mounted(){
this.child = this.$refs.refname
console.log('从子组件抓的数据:',this.child.checked2)
}

密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表