Vue3_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来完成双向绑定

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

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

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

组件v-model的实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<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实现(更佳)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<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>

  

posted @   Hexrui  阅读(68)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
返回顶部
点击右上角即可分享
微信分享提示