v-model 组件封装在vue2和vue3中的用法

v-model 一般用于vue的自定义组件封装动态修改和form 表单中input动态数据响应绑定处理,以前用form表单比较多,但是用于组件封装时,我很少用到,今天看同事写代码时,瞬间醍醐灌顶,下面用示例演示:

一、vue2中使用:

1. 父组件:

<template>

<ConsumeTip

        v-model="consumeNumber"

        :text="`当前XXX剩余 ${consumeNumber} 篇,为享有更多文档数量`">

        <div class="div-item">

          <svg-icon icon-class="ppt-doc"></svg-icon>

          <div class="title">

            <label>智能写作演讲稿</label>

          </div>

        </div>

      </ConsumeTip>

</template>

<script>

export default {

data (){

return{

consumeNumber:0

}

}

}

</script>

2. 子组件:

<template>

  <el-tooltip class="item" effect="dark" :placement="placement">

    <template #content>

      <span>{{ text }}</span>,点击

      <el-link type="primary" :underline="false" @click="toBuy"

        >购买{{ buyText }}</el-link>

    </template>

  
     <slot></slot>



  </el-tooltip>

</template>

<script>

export default {

 props: {

    text: {

      type: String,

      required: true,

    },

},

  data() {

    return {

      consumeNumber: 0,

    };

  },

  watch: {

    consumeNumber(value) {

      this.$emit("input", value);

    },

  },

  methods:{

    toBuy(){

        this.consumeNumber++

    }

  }
}

</script>

二 vue3中使用

前面都是差不多的,只是vue3,父组件调用时,是通过$emit('update:modelValue',XX)调用的

$emit('update:modelValue', this.consumeNumber++)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值