封装组件//自己实现一个 v-model

v-model中的实现原理及如何自定义v-model

1.v-model可以看成是value+input方法的语法糖。
2.组件的v-model就是value+input方法的语法糖。
3.可以绑定v-model的有:input,checkbox,select,textarea,radio

封装的组件
利用了 input 的 value属性 和 input事件

<template>
  <div>
    <input type="text" :value="val" @input="change">
  </div>
</template>

<script>
export default {
  name: 'InputValue',
  components: {},
  props: {
    val: {
      type: [Number, String],
      default: ''
    }
  },
  data() {
    return {
    }
  },
  computed: {},
  mounted() {},
  methods: {
    change(e) {
      this.$emit('getInput', e.target.value)
    }
  }
}
</script>

引用组件

<template>
  <div>review22
    <input v-model="myVal" type="text">
    <input-value :val="myVal" @getInput="handleInput" />
  </div>
</template>

<script>
import InputValue from '../review20210718/components/2'

export default {
  components: { InputValue },
  data() {
    return {
      myVal: ''
    }
  },
  methods: {
    handleInput(tar) {
      this.myVal = tar
    }
  }
}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值