vue 父组件和子组件相互传递值(父传子,子传父)

第一步:父组件传给子组件

父组件在子组件标签上用‘’标识一个属性,然后在子组件的props里面用‘[ ‘属性名’]’接收
父组件:

<template>
	<div>
		<h2>父组件</h2>
		<child :message="我是父组件传过来的值"></child>
	</div>
</template>
<script>
	import child from './child'
	export default{
		components:{
			child
		}
	}
</script>

子组件:

<template>
	<div>
		<h2>子组件</h2>
		<p>{{message}}</p>
	</div>
</template>
<script>
	export default{
		props:['message']
	}
</script>

第二步:子组件传给父组件

子组件通过**$.emit**(‘方法名’,‘传递的值’)传递,父组件则需要在子组件上添加对应的标识‘@子组件定义的方法名=‘接收方法名’’,在通过监听事件触发接收方法获取子组件传递的值

注意:子组件定义的方法名必须全小写,不能使用驼峰命名法

子组件:

<template>
	<div>
		<h2>子组件</h2>
		<button @click="send">向父组件传值</button>
	</div>
</template>
<script>
	export default{
		methods:{
			send(){
				this.$emit('sendmessage','向父组件传值')
			},
		}
	}
</script>

父组件:

<template>
	<div>
		<h2>父组件</h2>
		<child @sendmessage="getMessage"></child>
		<p>{{message}}</p>
	</div>
</template>
<script>
	import child from './child'
	export default{
		data(){
			return{
				message: '',
			}
		},
		components:{
			child
		},
		methods:{
			getMessage(data){
				this.message = data
			}
		}
	}
</script>

这只是一种方式,当然还有其他方式,自己私下再学吧


版权声明:本文为weixin_43747076原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。