vue 组件之间的传值方式

本文详细介绍了Vue.js中三种常见的组件通信方式:父组件向子组件传值、子组件向父组件传值以及非父子组件间的传值。通过具体代码示例,帮助读者理解并掌握如何在Vue应用中有效实现组件间的数据交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vue 组件之间的传值方式有:
1、父组件传给子组件
2、子组件传给父组件
3、非父子组件之间传值

父子组件的关系可以总结为 prop 向下传递,事件向上传递。父组件通过 prop 给子组件下发数据,子组件通过事件给父组件发送消息,如下图所示:

在这里插入图片描述
1、父组件向子组件传值:
父组件:

<template>
	<div>
		<input type="text" v-model="name">
		<!-- 引入子组件 -->
		<child :inputName="name"></child>
	</div>
</template>
<script>
	import child from './child'
	export default {
		components: {
			child
		},
		data () {
			return {
				name: ''
			}
		}
	}
</script>

子组件:

<template>
	<div>
		<span>{{ inputName }}</span>
	</div>
</template>
<script>
	export default {
		// 接收父组件传过来的值
		props: {
			inputName: String,
			required: true
		}
		// 也可以写成:props: [ “inputName” ]
	}
</script>

2、子组件向父组件传值:
子组件:

<template>
	<div>
		<span>{{ childValue }}</span>
		<!-- 定义一个子组件传值的方法 -->
		<input type="button" value="点击触发" @click="childClick">
	</div>
</template>
<script>
	export default {
		data () {
			return {
				childValue: '我是子组件的数据'
			}`在这里插入代码片`
		},
		methods: {
			childClick() {
				// childByValue是在父组件on监听的方法
				// 第二个参数this.childValue是需要传的值
				this.$emit('childByValue', this.childValue)
			}
		}
	}
</script>

父组件:

<template>
	<div>
		<span>{{name}}</span>
		<!-- 引入子组件 定义一个on的方法监听子组件的状态-->
		<child v-on:childByValue="childByValue"></child>
	</div>
</template>
<script>
	import child from './child'
	export default {
		components: {
			child
		},
		data () {
			return {
				name: ''
			}
		},
		methods: {
			childByValue (childValue) {
				// childValue就是子组件传过来的值
				this.name = childValue;
			}
		}
	}
</script>

3、非父子组件进行传值:

非父子组件之间传值,建议使用 vuex 状态管理

vuex:https://vuex.vuejs.org/zh/guide/

Vue组件之间Vue框架中的一个重要功能,它允许不同的组件之间共享数据,实现数据的递和交互。下面是Vue组件之间的最全面解释: 1. 父组件向子组件:父组件通过props属性向子组件递数据,子组件通过props属性接收父组件递的数据。这种方式适用于父子组件之间的数据递,父组件可以向多个子组件递数据。 2. 子组件向父组件:子组件通过$emit方法触发事件,父组件通过v-on指令监听事件,并通过事件对象获取子组件递的数据。这种方式适用于子组件向父组件递数据,子组件可以触发多个事件,父组件可以监听多个事件。 3. 兄弟组件之间:使用一个共同的父组件作为中介,通过props属性和$emit方法实现兄弟组件之间的数据递。这种方式适用于兄弟组件之间的数据共享,需要注意父组件的数据递和事件监听。 4. 使用Vuex进行状态管理:Vuex是Vue的状态管理库,可以实现多个组件之间的数据共享和状态管理。通过Vuex的store对象存储数据和状态,并通过mutations、actions和getters等方法实现数据的修改和获取。 5. 使用事件总线:通过Vue的事件机制,创建一个事件总线,多个组件可以通过事件总线进行数据递。通过Vue实例的$emit方法触发事件,通过Vue实例的$on方法监听事件,并通过事件对象获取数据。 以上是Vue组件之间的最全面解释,需要根据具体的场景选择不同的方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值