Vue3中v-model语法糖的三种写法详解

 更新时间:2024年01月19日 09:32:10   作者:nana努力学习前端  
这篇文章主要为大家详细介绍了Vue3中v-model语法糖的三种写法,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以跟随小编一起学习一下

Vue2 中的 v-model 默认解析为 :value 和 @input

Vue3 中的 v-model 默认解析为 :modelValue 和 @update:modelValue

Vue3 中的 v-model:attr 默认解析为 :attr和 @update:attr

Vue3 第一种写法 modelValue 和 @update:modelValue

父组件:

<script setup lang="ts">
import { ref } from 'vue'
const count = ref(10)
</script>
 
<template>
  <son
    :model-value="count"
    @update:modelValue="count = $event"
  ></son>
</template>

子组件:

<script setup lang="ts">
// 计数器
// 通过 v-model 解析成 modelValue @update:modelValue
defineProps<{
  modelValue: number
}>()
 
defineEmits<{
  (e: 'update:modelValue', count: number): void
}>()
</script>
 
<template>
  <div class="cp-radio-btn">
    计数器:{{ modelValue }}
    <button @click="$emit('update:modelValue', modelValue + 1)">+1</button>
  </div>
</template>

Vue3 第二种写法  v-model

父组件:

<script setup lang="ts">
import { ref } from 'vue'
const count = ref(10)
</script>
 
<template>
  <son v-model="count"></son>
</template>

子组件:

<script setup lang="ts">
// 计数器
// 通过 v-model 解析成 modelValue @update:modelValue
defineProps<{
  modelValue: number
}>()
 
defineEmits<{
  (e: 'update:modelValue', count: number): void
}>()
</script>
 
<template>
  <div class="cp-radio-btn">
    计数器:{{ modelValue }}
    <button @click="$emit('update:modelValue', modelValue + 1)">+1</button>
  </div>
</template>

Vue3 第三种写法 通过v-model:count 解析成 count @update:count

父组件:

<script setup lang="ts">
import { ref } from 'vue'
const count = ref(10)
</script>
 
<template>
  <son v-model:count="count"></son>
</template>

子组件:

<script setup lang="ts">
// 计数器
// 通过 v-model:count 解析成 count @update:count
defineProps<{
  count: number
}>()
 
defineEmits<{
  (e: 'update:count', count: number): void
}>()
</script>
 
<template>
  <div class="cp-radio-btn">
    计数器:{{ count }}
    <button @click="$emit('update:count', count + 1)">+1</button>
  </div>
</template>
 
<style lang="scss" scoped></style>

以上就是Vue3中v-model语法糖的三种写法详解的详细内容,更多关于Vue3 v-model的资料请关注脚本之家其它相关文章!

相关文章

  • Vue组件实现卡片动画倒计时示例详解

    Vue组件实现卡片动画倒计时示例详解

    这篇文章主要介绍了Vue组件实现卡片动画倒计时示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • vue3中的defineExpose使用示例教程

    vue3中的defineExpose使用示例教程

    这篇文章主要介绍了vue3中的defineExpose使用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • vue自定义弹框效果(确认框、提示框)

    vue自定义弹框效果(确认框、提示框)

    这篇文章主要为大家详细介绍了vue自定义弹框,实现确认框、提示框效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • Vue动态添加表单的实现方法

    Vue动态添加表单的实现方法

    在Vue.js应用中,动态表单是一个常见的需求,尤其是当表单字段的数量和类型需要根据用户输入或系统状态动态变化时,本文将详细介绍如何在Vue中实现动态表单的创建,并通过多个示例展示具体的实现方法,需要的朋友可以参考下
    2024-09-09
  • vue调用高德地图实例代码

    vue调用高德地图实例代码

    本篇文章主要介绍了vue调用高德地图实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • vue3全局导入bootstrap5方式

    vue3全局导入bootstrap5方式

    这篇文章主要介绍了vue3全局导入bootstrap5方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • vue3 reactive定义的引用类型直接赋值导致数据失去响应式问题

    vue3 reactive定义的引用类型直接赋值导致数据失去响应式问题

    这篇文章主要介绍了vue3 reactive定义的引用类型直接赋值导致数据失去响应式问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 解决element-ui el-checkbox的一些坑

    解决element-ui el-checkbox的一些坑

    这篇文章主要介绍了解决element-ui el-checkbox的一些坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • vue之el-upload使用FormData多文件同时上传问题

    vue之el-upload使用FormData多文件同时上传问题

    这篇文章主要介绍了vue之el-upload使用FormData多文件同时上传问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 详解Vue template 如何支持多个根结点

    详解Vue template 如何支持多个根结点

    这篇文章主要介绍了详解Vue template 如何支持多个根结点,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02

最新评论