vue的通信传值方式

本文介绍了Vue中组件间通信的多种方式,包括路由传值、sessionStorage本地缓存、prop、$parent、$emit、$children、provide/inject以及eventBus和vuex。详细阐述了如何在父子组件、孙组件与祖先组件之间以及不相关组件之间进行数据传递和状态管理。
摘要由CSDN通过智能技术生成

一、路由通信传值

路由通信是通过路由跳转用query把参数带过去,也是vue常用的通信手段。
eg:list.vue跳转到update.vue,需要传递id

list.vue
this.$router.push({ path:"/update" , query:{ id:“213” } })
update.vue
let id = this.$route.query.id

list.vue

<template>
 <div>
  xxxxx
 </div>
</template>
<script>
export default {
    
 name: 'list',
 data () {
    
	 return {
    
	 }
 },
 mounted(){
    
 },
 methods:{
    
	 edit(){
    
	  this.$router.push({
     path:"/update" , query:{
     id:"213" } }) //路由跳转,并用query带过去参数
	 }
 }
}
</script>

update.vue

xxxxx
<script>
export default {
    
 name: 'update',
 data () {
    
	 return {
    
	 	id:'',
	 }
 },
 mounted(){
    
 	this.id = this.$route.query.id//在生命周期中接收传过来的数据
 },
 methods:{
    
	 findById(){
    
	  	//通过id查询数据即可。
	 }
 }
}
</script>

二、sessionStorage本地缓存通信

下边就是简写了。
A.vue

 var message = "哈哈哈"
 sessionStorage.setItem('text', message) //创建缓存

B.vue

mounted(){
   
 this.message = sessionStorage.getItem("text") //读取缓存
 },

三、组件之间的传值

在这里插入图片描述

1. 父传子

prop

父组件通过prop给子组件下发数据,如果传递的参数很多,可使用json数组{}的形式。
父组件 list.vue

<template>
 <div>
  <update :text=message :stepShow="stepShow"></update> //将message和stepShow两个参数传给子组件
 </div>
</template>

<script>
import update from '@/components/update.vue'	//引用组件
export default {
    
 name: 'list',
 components:{
    	//引用组件
	update
 },
 data () {
    
	 return {
    
	   message : "哈哈哈",
	   stepShow:false,
	 }
 },
 mounted(){
    
 
 },
 methods:{
    
 
 }
}
</script>

自组件update.vue

<template>
 <div>
  <p>我是关于页:{
  { message }}</p>
  <p v-if="this.stepShow"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值