父子组件的传值


前言

vue中的父子组件传值,值得注意的是要遵守单向数据流原则
单向数据流原则,就是父组件的数据可以传递给子组件,子组件也可以获取并使用父组件传过来的数据。但是子组件中不能直接修改父组件传过来的数据,必须要向父组件传递一个事件来修改数据。


一、父组件传值给子组件

//在父组件中的子标签中写自定义属性
<child :type="type1"></child>
//在子组件中用props接受父组件的自定义属性。
props:{
	type:{
		type:[Array],
		default: () => {
			return 'free'
		}
	}
},

二、子组件传值给父组件

子组件传值给父组件的方法:
1.在父组件中给引用的子组件注册一个事件(这个事件的名字是自定义的)
2.子组件可以触发这个事件$emit('事件名字')

子组件给父组件传递数据:
1.$emit方法第二个参数可以定义子组件给父组件传递的内容
2.在父组件中怎么拿到这内容
	2.1父组件这个方法没有自定义参数,在父组件的方法直接加这个参数就可以拿到
	2.2父组件有自定义参数,可以传入$event也可以拿到子组件传递的数据.通过$event只能传递第一个参数.

1.没有自定义参数时

//在父组件中给子组件中注册一个事件(名字自定义)
<child @tofather="tofather"></child>
//接受来自子组件的传值
tofather(data){
	console.log(data);
}
//子组件使用$emit传值
created(){
	this.$emit('tofather',{name:'zs',age:19})
}

2.有自定义参数时

<child @tofather="tofather('自定参数','传递的参数')"></child>	

//子组件使用$emit传值
tofather(data,data1) {
	console.log(data);
	console.log(data1);
}

总结

以上就是今天要讲的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue.js中,父子组件之间的通信主要通过props和emit两种方式来实现。具体实现方法如下: 1. 父组件向子组件传值组件可以通过props属性向子组件传递数据,子组件通过props选项接收数据。例如: ```html <template> <div> <child :message="parentMessage"></child> </div> </template> <script> import Child from './Child.vue' export default { components: { Child }, data () { return { parentMessage: 'Hello from parent' } } } </script> ``` 子组件可以通过props选项接收数据,并在模板中使用该数据。例如: ```html <template> <div> {{ message }} </div> </template> <script> export default { props: ['message'] } </script> ``` 2. 子组件向父组件传值组件可以通过emit方法向父组件传递数据,父组件通过v-on指令监听子组件的事件并接收数据。例如: ```html <template> <div> <button @click="sendMessage">Send message to parent</button> </div> </template> <script> export default { methods: { sendMessage () { this.$emit('message', 'Hello from child') } } } </script> ``` 父组件可以通过v-on指令监听子组件的事件,并在相应的方法中接收数据。例如: ```html <template> <div> <child @message="handleMessage"></child> </div> </template> <script> import Child from './Child.vue' export default { components: { Child }, methods: { handleMessage (message) { console.log(message) } } } </script> ``` 以上就是父子组件传值的两种方法。需要注意的是,在使用props和emit时,要遵循单向数据流的原则,即只能从父组件向子组件传递数据,不能反过来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值