父子组件间的通讯

Posted chujunqiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了父子组件间的通讯相关的知识,希望对你有一定的参考价值。

因为vue进行组件开发时候,允许组件进行嵌套,因此父子组件需要进行通讯来获取父组件或子组件中的数据。

技术图片

技术图片

技术图片

父传子

父组件给子组件传数据通过在子组件的标签上绑定属性,将数据绑定给某个属性

子组件要获取父组件传过来的信息,必须在内部定义props属性

子组件标签上:

:c-message="message"

子组件内部定义porps:

数组写法

props:[‘cMessage‘]

对象写法

props:
   cMessage:String//数据类型限制

最全的设置写法
props:
cMessage://数据名称为驼峰,因此在绑定属性时要这样写=>:c-message="message" 差值写法不用变=>cMessage
type:String,//类型限制 多种类型时=>type:[String,Number]
default:‘默认内容‘,//如果没有传值时的默认值
// 当type是数组或对象时,default必须是一个函数,并且返回一个数组或对象
//default:function() return []
required:true//是否必须传值,true时必须传值

子传父

子组件给父组件传数据通过在子组件的标签上绑定自定义事件监听,监听子组件是否发送播报

子组件要发送播报,必须通过$emit函数

子组件标签上:

@li-emit="getEmitEvent"

子组件内部使用$emit:

内部template:

<li v-for="item in list" @click="eventEmit(item)">item.id-item.name</li>

内部methods:

methods://子组件方法
eventEmit:function(item)
//通过组件的$emit 自定义事件并发送给父组件 $emit(事件名,传递的参数)
this.$emit(‘li-emit‘,item)

父组件内部获取子组件的数据

methods://父组件的方法
getEmitEvent:function(item)//获取子组件传来的数据
alert(item.name)

以上是关于父子组件间的通讯的主要内容,如果未能解决你的问题,请参考以下文章

Vue里父子组间的通讯

vue组件之间的通信, 父子组件通信,兄弟组件通信

vue.js组件之j间的通讯一 子组件接受父祖件数据

VueJs---组件(父子通讯)

Vue 非父子组件通信方案

小程序开发 组件定义(封装)组件调用父子组件方法调用父子组件传值通讯