组件通信之关系型

组件通信之关系型

props

1:父组件绑定自定义属性,并动态赋值

​		<parent :msg="msg" />

2:子组件通过props属性接受msg

​		props:['msg']

注意:再子组件中不能修改prop[msg],因为数据是父组件的,vue中props出啊之单向下行绑定,如果子组件中修改prop vue应用数据层混乱,违反单向数据流。

通电:子组件怎么修改父组件数据

$emit

1:父组件中创建自定义事件,并绑定事件处理函数
  <parent @shijian="handle" />
2:子组件中通过$emit 触发事件 shijian 并给handle函数传入实参
 this.$emit('shijian','参数js任意类型数据')
3:组组件中,将接收到的数据保存到data中

注意:父组件是可以更改保存的字段的

v-model

怎么再组件上使用v-model代替自定义事件和属性

1:使用组件v-model="prop"
	<parent v-model="checked" />
2:再组件中通过model 属性 完成

model:{
	prop:'check',
	event:'change'
}

解决:checkbox即是单选又是多选意义紊乱的问题。。。

如果是单选或者是多选 用v-model代替了$emit+props的方式

listen

在组件上监听原生事件,使用.navctive修饰符,可能会失效

$listen 实现监听

.sync

解决prop双向绑定,父子组件都没有响应的问题。可以通过.sync

$parent

通过$parent获取父组件的组件实例

  • 1:可以间接获取组件上所有响应式数据
  • 2:获取组件上所有函数

$children

$children返回当前组件的所有子组件实例的集合

通过这种方式获取目标子组件属性

  • 1:获取目标组件实例的所有响应式数据和方法

$refs

如果将ref绑定到组件上

  • 通过this.$refs.refval获取组件实例
  • 间接获取组件实例上所有响应式数据和方法

如果ref绑定到:dom上

  • this.$refs.refval获取dom元素并操作dom
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值