Vue父子组件之间的通信

Vue父子组件之间的通信

创建两个全局组件
1.Parent 2. Child

父组件往子组件通信

  1. 现在父组件中绑定自定义属性
  2. 在子组件中使用props接收父组件传递的数据
  3. 在子组件中可以任意使用
Vue.component('Child',{
	template:`<div>
					<p>我是子组件</p>
					<input type="text" v-model="childValue">
					<p>{{childValue}}</p>
				</div>`
	//子组件通过props接受父组件传递过来的数据
	props:['childValue']
});

Vue.component('Parent',{
	data(){
		return {
			msg:"你好"
		}
	},
	template:`<div>
		//自定义属性将父组件的数据传递给子组件
					<Child :childValue="msg"></Child>
				</div>`
});

子组件往父组件通信

  1. 在父组件中绑定自定义事件
  2. 在子组件中触发原生事件,在函数中用$emit触发
Vue.component('Child',{
	data(){
		return {
			msg:"你好"
		}
	},
	template:`<div>
				<p>我是子组件</p>
				<input type="text" v-model="msg" @input="clickValue(msg)">
			</div>`,
	methods:{
		//在函数中,自定义事件一定要通过this.$emit()触发,
		//$emit(自定义事件名,消息)
		clickValue(val){
			this.$emit('clickValue',val);
		}
	},
});

Vue.component('Parent',{
	template:`<div>
					<Child @clickValue="clickValue"></Child>
				</div>`,
		methods:{
			clickValue(val){
				console.log(val);
			}
	}
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值