Vue_07(组件的v-model)

发布时间:2022-06-27 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Vue_07(组件的v-model)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

v-model | Vue.js https://v3.cn.vuejs.org/guide/component-custom-events.html#v-model-%E5%8F%82%E6%95%B0

在input中可以使用v-model来完成双向绑定

<input v-model="message">
 #上下等同
<input :value="message" @input="message = $event.target.value">

vue也支持在组件上使用v-model

<hy-input v-model="message"></hy-input>
#上下等同
<hy-input :modelValue="message" @update:model-value="message = $event"></hy-input>

组件v-model的实现

<template>
  <div>
    <input :value="modelValue" @input="btnClick">
  </div>
</template>

<script>
  export default {
    props: ['modelValue'],
    emits: ["update:modelValue"],
    methods: {
      btnClick(event) {
        this.$emit("update:modelValue", event.target.value);
      }
    }
  }
</script>

<style scoped>

</style>

利用computed实现(更佳)

<template>
  <div>
    <input v-model="value">
    <input v-model="why">
  </div>
</template>

<script>
  export default {
    props: {
      modelValue: String,
      title: String 
    },
    emits: ["update:modelValue", "update:title"],
    computed: {
      value: {
        set(value) {
          this.$emit("update:modelValue", value);
        },
        get() {
          return this.modelValue;
        }
      },
      why: {
        set(why) {
          this.$emit("update:title", why);
        },
        get() {
          return this.title;
        }
      }
    }
  }
</script>

<style scoped>

</style>

  

脚本宝典总结

以上是脚本宝典为你收集整理的Vue_07(组件的v-model)全部内容,希望文章能够帮你解决Vue_07(组件的v-model)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: