vue_传值的几种方式 组件通信 详解_vue

!important

在这之前请诸位看下 位于本文题目最右侧的小手手,点一下它,你的学习效率会提高3倍!大概在这个位置↗

正题:

·
·
父组件给子组件传值:
当前有一个父组件A,有一个子组件B

A:
我们要把arr每一个值传给子组件B
<template>
	<div>
		1<子组件B v-for="(item,index) in arr" :item="item" :key="index"></子组件B>
		如果要把一个数组直接传过去,那么就直接这么写:
		2<子组件B :arr="arr"></子组件B>
	</div>
</template>

<script>
	export default {
		name:'父组件A',
		data(){
			return {
				arr:[1,2,3,4,5] //我们要把这个arr传给子组件B
			}
		}
	}
</script>
B:
<script>
	export default {
		props:['arr'],//这里接收
		mounted(){
			console.log(this.arr)//[1,2,3,4,5]
		}
	}
</script>

·
·

  • 子传给父 以及 兄弟之间传值:
    新建一个js文件在@/assets下,就叫他bus吧,有些人习惯起名字叫做vm
//bus.js:
import Vue from 'vue'
export default new Vue
B:
<script>
	import bus from '@/assets/bus'
	export default {
		data(){
			return {
				msg:"123123123123"
			}
		},
		mounted(){
			bus.$emit('msgB',this.msg)
		}
	}
</script>
A:
<script>
	import bus from '@/assets/bus'
	export default {
		mounted(){
			bus.$on('msgB',(msgb)=>{
				console.log(msgb)  //123123123123
			})
		}
	}
</script>

·
·
路由传值:

A:
这里是从A跳转到B组件:
<template>
	<div>
		【第一种:】
		<router-link :to="{name:'b',params:{name:'abcd'}}">go B</router-link>
		【第二种:】
		<router-link :to="{path:'/b',query:{name:'abcd'}}">go B</router-link>

		<h1 @click="goB">go B</h1>
	</div>
</template>

<script>
	export default {
		methods:{
			goB(){
			
				【第三种】(等同于第一种)
				this.$router.push({
					name:'b',
					params:{name:'abcd'}
				})
				
				
				【第四种】(等同于第二种)
				this.$router.push({
					path:'/b',
					query:{name:'abcd'}
				})
				
			}
		}
	}
</script>

B:
<script>
	export default {
		mounted(){
			console.log(this.$route.params)
			console.log(this.$route.qurey)
		}
	}
</script>

如有错处,亲各位指出~
还有就是用vuex传值,但是我写了一个小时了,就不写了

end

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值