vue

vmodel自定义

数据双向绑定

920 发布: 2023/2/10 15:10 本文总阅读量

注意!!!

微信小程序内只能用{prop:'value',event:'input'} github

<template>
    <!-- 自定义组件中使用v-mode指令 -->
    <input class="input" @input="changeInput" :value="rkValue" />
</template>

<script>
    export default {
      name: 'CustomModel',
      model: {
        prop: 'rkValue', // 默认是value
        event: 'rkInput', // 默认是input
      },
      props: {
        // 接收string和number类型的值,
        // 注意不能是写成字符串["String","Number"],因为此时它们是构造器,是全局变量
        rkValue: [String, Number],
      },
      methods: {
        changeInput ($event) {
          // 向上派发rkInput事件,这样model监听rkInput才有意义:当输入字符时触发input事件,
          // 进而派发触发自定义的rkInput事件,然后model监听rkInput,就实现了数据绑定
          this.$emit('rkInput', $event.target.value)
        },
      }
    }
</script>

待研究

  // {prop:'value',event:'change'}`
  
  <!--#ifdef MP-WEIXIN-->
  <custom-com :value="photos" @change="onImageChange"></custom-com>
  <!--#endif-->
  <!--#ifndef MP-WEIXIN-->
  <custom-com v-model="photos"></custom-com>
  <!--#endif-->