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>

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

Vue 组件传递给子组件的可以是对象或者。下面是两种常见的传递方式: 1. 通过属性绑定传递组件可以通过在子组件上绑定属性来传递。例如,组件中的数据可以通过属性绑定传递给子组件: ```html <template> <div> <child-component :data="obj"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent }, data() { return { obj: { name: 'John', age: 25 } }; } }; </script> ``` 在子组件中,可以通过 `props` 接收组件传递: ```html <template> <div> <p>Name: {{ data.name }}</p> <p>Age: {{ data.age }}</p> </div> </template> <script> export default { props: { data: Object } }; </script> ``` 2. 通过插槽传递内容: 组件可以通过插槽来传递包含任意内容的子组件。例如,组件可以在子组件的标签内放置其他 HTML 或组件,并将其作为插槽内容传递给子组件: ```html <template> <div> <child-component> <h1>{{ title }}</h1> <p>{{ content }}</p> </child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent }, data() { return { title: 'Welcome', content: 'This is the content' }; } }; </script> ``` 在子组件中,可以通过 `slot` 来获取插槽内容: ```html <template> <div> <slot></slot> </div> </template> ``` 这样,子组件就可以渲染组件传递的内容了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值