vue子组件修改父组件的值

文章展示了在Vue.js中如何通过props将父组件的数据传递给子组件,以及子组件如何使用$emit向父组件发送事件来改变父组件的值。在示例中,父组件通过sendMsgprop传递数据,并通过@getValue监听子组件的事件。子组件则通过$emit触发事件并更新父组件的name属性。
摘要由CSDN通过智能技术生成

父组件可以使用 props 把数据传给子组件。
子组件可以使用 $emit改变父组件的值 。

vm.$emit( event, arg ) //触发当前实例上的事件

vm.$on( event, fn );//监听event事件后运行 fn; 

父组件:

<template>
  <div>
    <p>{{name}}</p>
    <button type="primary" size="mini" @click="submit">提交</button>
    <!--子组件-->
    <children
      ref="ref"
      :sendMsg="content"
      @getValue="getSonVal"
    ></children>
  </div>
</template>
<script>
  import children from "./components/children.vue"; //引入子组件
  export default {
    components:{
      children,
    },
    data() {
      return {
        name: "张三",
        content:'我是从父组件传过来的',
      }
    },
    methods: {
      getSonVal(val) {
        this.name = val;//将子组件传过来的值赋值给name
      },
      submit() {
        this.$refs.ref.showName();
      },
    }
  }
</script>

子组件:

<template>
  <div class="box">
    <p>{{sendMsg}}</p>
    <button type="primary" size="mini" @click="showName()">刷新</button>
  </div>
</template>
<script>
  export default {
    props:['sendMsg'],
    data() {
      return {
        name: "李四",
      }
    },
    methods: {
      showName() {
        this.$emit('getValue', this.name)
        alert('我是子组件的方法')
      }
    }
  }
</script>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值