Kros的博客 Kros的博客
首页
  • CSS
  • 工具
  • Vue
  • js
  • Vue3
  • 算法
  • 折腾笔记
一言
  • 分类
  • 标签
  • 归档
码云

Kros

凡心所向,素履以往,生如逆旅,一苇以航
首页
  • CSS
  • 工具
  • Vue
  • js
  • Vue3
  • 算法
  • 折腾笔记
一言
  • 分类
  • 标签
  • 归档
码云
  • CSS

  • JavaScript

  • 工具

  • Vue

  • antdv踩坑记录

  • Vue3

    • vue3 setup语法糖
    • vue3实现v-model
    • vue3组件通信
    • vue3使用pinia及pinia持久化
    • vue3使用$nextTick
    • Proxy的实际应用场景
    • ref和reactive的实现原理
    • vue3生命周期
    • 在vue文件外使用store
    • vue3中的编译器宏
    • vue3 ts中拼接本地图片地址
    • 数值滚动实现
    • setup语法糖下自定义组件name
    • vue-router4配置动态路由问题No match found for location with path
    • vue3挂载全局弹窗
    • vue3+vite配置环境变量问题
    • Vue3监听createApp创建的子组件事件
    • vue3源码学习——vue3核心模块
  • 前端
  • Vue3
kros
2022-10-26

vue3实现v-model

vue 3中实现v-model比简单很多,我们可以使用vue3提供的宏方法defineModel在子组件中直接定义需要双向绑定的数据

<!-- child.vue --> 
<script setup lang="ts">
// 默认modelValue  写法v-model
const title = defineModel()
</script>
1
2
3
4
5

在父级组件中就可以使用v-model来绑定数据:

<!-- parent.vue --> 
<child v-model="title" />
1
2

defineModel返回的是ref对象,意味着我们可以把他作为响应式数据在绑定到其它元素上

<!-- child.vue --> 
标题:<input v-model="title" />
1
2

如上我们定义了一个默认v-model绑定值,但往往我们需要绑定的变量不止一个,在vue2中就提供了$emit(update:value)和.sync的方式来实现除默认v-model以外的变量双向绑定,这种在vue3也有保留并且使用更加方便。我们只需要在defineModel中传入一个参数,该参数就可以自定义声明绑定的变量,如下我们声明了一个content的变量,同样在父组件中使用v-model:声明变量即可完成双向绑定

<!-- child.vue --> 
<script setup lang="ts">
// 默认modelValue  写法v-model
const content = defineModel('content')
</script>

<!-- parent.vue --> 
<child v-mode:content="content" />
1
2
3
4
5
6
7
8

更多用法: defineModel() v-model

上次更新: 2025/09/05, 8:09:00
vue3 setup语法糖
vue3组件通信

← vue3 setup语法糖 vue3组件通信→

最近更新
01
Find the next perfect square
09-05
02
Regex validate PIN code
09-05
03
Find the odd int
09-05
更多文章>
Theme by Vdoing | Copyright © 2020-2025 kros king
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
icon-heart-o icon-heart icon-infinity icon-pause icon-play link next prev