vue与组件的通讯(props与$emit)

1、父页面给组件传递数据(props)
父页面

<template>
	<view>
		<a-chlid :titleData="titleData"></a-chlid>
	</view>
</template>
<script>
	//组件的引入这边就不多描述了
	export default{
		data(){
			return{
				titleData:'标题'
			}
		}
	}
</script>

组件

<template>
	<view>
		{{titleData}}
	</view>
</template>
<script>
	//组件的引入这边就不多描述了
	export default{
		name:'a-chlid',
		props:{
			titleData:{
				type:String,//传入参数的类型
				default: null //默认值
			}
		}
	}
</script>

2、组件传递数据给父页面($emit)
组件

<template>
	<view @click="btn">
		点我
	</view>
</template>
<script>
	//组件的引入这边就不多描述了
	export default{
		name:'a-chlid',
		methods:{
			btn(){//不一定是点击事件,也有可能是执行了一个请求,然后把请求到的数据发送
				let data={
					name:'lin'
				}
				this.$emit('userName', data);//this.$emit必须,userName可自定义
			}
		}
	}
</script>

父页面

<template>
	<view>
		<a-chlid @userName="userName"></a-chlid>
	</view>
</template>
<script>
	//组件的引入这边就不多描述了
	export default{
		methods:{
			//组件发送时,会触发页面的@userName事件,并且e接收数据
			userName(e){
				console.log(e)//name:'lin'
				console.log(e.name)//lin
			}
		}
	}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值