vue练习:父组件获取子组件里input的值

在学习vue2时有学过数据绑定

通过v-model可以把input的值实时同步到data里,这样就可以使用input的值了。

在后面的练习里会经常存在一些子组件里有input,但需要把input的值在父组件里使用,我现在意识到解决这种情况的方法就是利用了v-model的原理。

首先父组件给子组件传参,子组件通过props接收这个值,并把它用于input的value值。

然后父组件给子组件传一个函数,给子组件的input添加输入事件,在输入事件的函数里调用父组件传过来的函数,同时把input的值当做实参传过去。

当父组件被调用时,把接受到的实参赋值给父组件里的变量,这样就能实现父组件获取子组件里input的值。

 <PayInvoice
      :value="invoice"
      @fetchInvoiceInfo="fetchInvoiceInfo"
    />


data() {
    return {
      invoice: '' // 发票信息
    }
  },
methods: {
    // 获取发票信息
    fetchInvoiceInfo(e) {
      this.invoice = e
    }
  }

//以上是父组件

<input type="text" :value="value" @input="changeValue($event)" placeholder="请输入发票信息"/>

props: {
    value: {
      type: String,
      default: ''
    }
  },
  data() {
    return {
    }
  },
  computed: {},
  watch: {},
  created() {
  },
  mounted() {
  },
  destroyed() {
  },
  methods: {
    changeValue(e) {
      this.$emit('fetchInvoiceInfo', e.target.value)
    }
  }

//以上是子组件

感觉好像有更好的写法,但是想不起来了,以后遇到了再来记录下

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值