vue3中的v-model语法糖

Vue2的v-model默认解析成 :value 与 @input

Vue3的 V-model 默认解析成 :modelValue 与 @update:modelValue

vue3中只需要 v-model 指令可以支持对个数据在父子组件同步,不再支持 .sync 语法

vue3 中 v-model 语法糖
:modelValue="count"@update:modelValue="count=$event"

vue3 中 v-model:xxx 语法糖?
:xxx="count"@update:xxx="count=$event"

方式一 通过 v-model 解析成 modelValue @update:modelValue

子组件

html 复制代码
<script setup lang="ts">
defineProps<{
  modelValue: number
}>()

defineEmits<{ (e: 'update:modelValue', count: number): void }>()
</script>

<template>
  <div>
    计数器{{ modelValue
    }}<button @click="$emit('update:modelValue', modelValue + 1)">+1</button>
  </div>
</template>

<style lang="scss" scoped></style>

父组件

html 复制代码
<script setup lang="ts">
const count = ref(10)
</script>
<template>
 <!--组件 -->
    <!--<cp-radio-btn
     :model-value="count"
     @updata:model-value="count = $event"
   ></cp-radio-btn>-->
    <!--  :model-value="count"@updata:model-value="count = $event"
    以这样的形式写,就可以简写为 v-model="count"依旧生效 -->
  <cp-radio-btn v-model="count"></cp-radio-btn>
</template>

<style lang="scss" scoped></style>

点击按钮,计数器+1

方式二: 通过 v-model:count 解析成 count @update:count

子组件

html 复制代码
<script setup lang="ts">
defineProps<{
  count: number
}>()

defineEmits<{ (e: 'update:count', count: number): void }>()
</script>

<template>
  <div>
    计数器{{ count }}
    <button @click="$emit('update:count', count + 1)">+1</button>
  </div>
</template>

<style lang="scss" scoped></style>

父组件

html 复制代码
<script setup lang="ts">
const count = ref(10)
</script>
<template>
 <!--组件 -->
  <cp-radio-btn v-model:count="count"></cp-radio-btn>
</template>

<style lang="scss" scoped></style>
相关推荐
shen_5 分钟前
AI Coding:前端UI规范笔记
前端
石山代码19 分钟前
JavaScript 进阶核心知识点
开发语言·javascript·ecmascript
llz_11238 分钟前
web-第五次课后作业
前端·后端·http
恋猫de小郭1 小时前
Redis 作者反驳「中国模型之所以强,是因为通过 API 蒸馏了美国模型」
前端·人工智能·ai编程
Darling噜啦啦2 小时前
Canvas 游戏开发与数据可视化实战:从飞机大战到 ECharts 报表
前端·echarts·canvas
OpenTiny社区2 小时前
这次更新太良心!GenUI SDK v1.2.0 轻量化 + 稳流式 + 超强 Playground
前端·vue.js·ai编程
梨子同志2 小时前
WebGL test
前端
m0_547486662 小时前
《HTML+CSS+JavaScript+Vue前端开发技术教程》全套PPT课件
javascript·css·html
程序员黑豆2 小时前
AI全栈开发系列开篇:从Java全栈到AI应用实战
前端·ai编程·全栈
yangyj2 小时前
从 PDR 到落地:用 Codex 完成一次 Rspack 升级
前端