【vue】vue组件间传值

本文详细介绍了组件间三种传值方式:父组件向子组件通过属性传值,子组件向父组件通过事件加参数传值,以及兄弟组件间通过事件总线实现的数据传递。涵盖了Vue.js中组件通信的核心概念。

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

组件传值三种:父组件向子组件传值、子组件向父组件传值、兄弟组件之间传值。

1、父-->子:通过属性传值,父组件将数据绑定到属性上,子组件通过props:['属性名']获取数据;

2、子-->父:通过事件加参数传值,父组件获取事件;

         <ul>
			<todo-item v-for="(item,index) of list" :key="index"
			:content="item" :index="index" @delete="handleDelete"
			></todo-item>
		</ul>
	</div>
	<script>
		Vue.component('todo-item',{
			props:['content','index'],
			template:'<li @click="handleClick">{{content}}</li>',
			methods:{
				handleClick:function(){
					this.$emit('delete',this.index)

				}
			}

		})

3、兄弟组件间传值

借助事件总线(全局变量),即定义vue全局对象msg(一般都是在.js文件中定义,兄弟组件使用时都要引入这个文件,import、export),通过一方发布msg.$emit('事件名','参数')、另一方接受msg.$on('事件名',function(参数){}),实现传值。

msg.js

import Vue from 'vue'
export default new Vue

引入:

<script type="text/javascript">
	import Msg from './msg.js'
	export default{
		methods:{
			menu1:function(){
				Msg.$emit("val","1")
			},
			menu2:function(){
				Msg.$emit("val","2")
			}
		}
	}
</script>

使用:

<script type="text/javascript">
	import Msg from './msg.js'
	import GoodList from './GoodList.vue'

	export default{
		data(){
			return {
				kk:0
			}
		},
		mounted:function(){
			var _this=this
			Msg.$on('val',function(m){
				_this.kk=m;
			})
		},
		components:{
			GoodList
		}
	}
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值