Vue.js中常见的组件通信

本文详细介绍了Vue中组件间的通信方式,包括父组件向子组件传值,子组件向父组件传值,以及兄弟组件间如何通过父组件进行通信。通过实例展示了props、$emit和watch等关键概念的应用,帮助开发者理解Vue组件通信的基本原理和实践。

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

1.  父组件向子组件传值

  • 父组件通过以属性的方式把值绑定在子组件上身上。
  • 子组件通过props属性来接收该值

举个栗子来看一下:

父组件

<div>
        <input type="text" v-model="fv" >
        <div>fv: {{fv}} </div>
        <hr>
        <son1 :fv = "fv" ></son1>
    </div>
</template>
<script>

import son1 from './views/son1.vue'

export default {
    components:{
        'son1' : son1,
    },
    data(){
        return{
            fv : ''
        }
    }
    
}
</script>

子组件

<template>
  <div>
      <h3>son1.vue</h3>
      <input type="text" v-model="sv" >
      <br>
        fv:{{fv}}
  </div>
</template>

<script>
export default {
//接收父组件传值
    props:{
        fv : String
    }  
}
</script>

2.  子组件想父组件传值

  • 子组件利用监听器watch监听数据的改变
  • 当数据发生改变时,通过$emit()触发事件来进行子传父 传值
  • $emit() 第一个参数为 自定义的事件名称 第二个参数为需要传递的数据
  • 父组件用v-on 监听子组件的事件

再来举个栗子

父组件:

<son1 :fv = "fv" :sv = "sv" @get='handel'></son1>
 components:{
        'son1' : son1,
    },
    data(){
        return{
            fv : '',
            sv : ''
        }
    },
    methods:{
        handel(val){
            this.sv = val
        }
    }

子组件

<input type="text" v-model="sv" >
watch:{
        sv(val){
            this.$emit('get',val)
        }
    },
    data(){
        return{
            sv : ''
        }
    }

3.  兄弟组件传值

先由第一个子组件传值给父组件,然后通过父组件再传值给另一个子组件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值