vue 组件通信的几种方法

父传子的通信  变量传参

//  父组件
<HelloWorld msg="Welcome to Your Vue.js App"/>
import HelloWorld from './components/HelloWorld.vue'
export default {
  name: 'App',
  components: {
    HelloWorld
  },

//  子组件


 {{msg}}

 props: {
    msg: String,
  },

子传父的通信  函数传参

通过函数传参方法修改父组件msgData的变量值

//  父组件
<HelloWorld :msg="msgData" :btnfn="Fcfn" />
import HelloWorld from './components/HelloWorld.vue'
export default {
  name: 'App',
  components: {
    HelloWorld
  },
  data(){
    return{
      msgData: 'Welcome to Your Vue.js App'
    }
  },
   methods:{
    Fcfn(m){
      this.msgData = m
    }
   }

//  子组件

<template>
    <div>
        {{msg}}
         <button @click="btnfn('你好')">子传父通信</button>
    </div>
</template>
 

 props: {
    msg: String,
    btnfn: Function
  },

子传父的通信  $emit(事件发射方法)

//  父组件
<HelloWorld :msg="msgData" @newName="getMsg" />
import HelloWorld from './components/HelloWorld.vue'
export default {
  name: 'App',
  components: {
    HelloWorld
  },
  data(){
    return{
      msgData: 'Welcome to Your Vue.js App'
    }
  },
   methods:{
    getMsg(e) {
      this.msgData = e
    }
   }

//  子组件

<template>
    <div>
        {{msg}}
         <button @click="doClick">子传父通信</button>
    </div>
</template>
 

 props: {
    msg: String,
    btnfn: Function
  },
methods:{
    doClick(){
      this.$emit('newName', 'hello,js')
    }
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值