1024

17、Vue3 v-model自定义修饰符

2021-02-05  本文已影响0人  圆梦人生

自定义修饰符 custprop和custprop2,它将 v-model 绑定提供的字符串的变成大写,

案例

<!--  -->
<template>
  <input type="text" :value="modelValue || name" @input="inputemit" /> 

</template>

<script>
export default {
  props: {
    name: String,
    modelValue: String,
    // 带有参数自定义修饰符(args+Modifiers)
    nameModifiers: {},
    // 自定义修饰符,不带参数(modelModifiers)
    modelModifiers: {
      default: () => ({}),
    },
  },
  methods: {
    inputemit(e) {
      let value = e.target.value;
      console.log("modelModifiers === ", this.modelModifiers, this.nameModifiers);
      if (this.modelModifiers.custprop || this.nameModifiers.custprop2) {
        value = value.toUpperCase();
      }
      this.$emit("update:modelValue", value);
      this.$emit("update:name", value);
    }
  },
};
</script>
<!-- -->
<template>
  <inputcmp2 v-model.custprop="inpvalue"/><br>
  name: <inputcmp2 v-model:name.custprop2="name" />
</template>

<script>
import { ref } from 'vue'
import inputcmp2 from '/@/components/inputcmp2.vue'
export default {
  components: {
    inputcmp2
  },
  setup(){
    let inpvalue = ref('abc');
    let name = ref('zs');
    return {
      inpvalue,
      name
    }
  }
}

</script>
上一篇 下一篇

猜你喜欢

热点阅读