vue3 中v-model语法糖(2024-06-21)


一、 vue2 中 v-model 语法糖

实现父子组件双向数据绑定,一个输入框或者组件指定绑定一个 v-model

1. 父组件写法

<template><div><h1>App</h1><h2>{{ count }}</h2><input type="text" v-model="count" /><!-- 展开写法,@input中的 count 的值来自当前输入框事件 --><input type="text" :value="count" @input="count = $event.target.value" /><hr /><Children v-model="count"></Children><!-- 展开写法,@input中的 count 的值来自子组件输入框中的值 $event.target.value --><Children :value="count" @input="count = $event"></Children></div>
</template><script>
import Children from "@/components/Children.vue";
export default {components: {Children,},data() {return {count: "1",};},
};
</script>

2. 子组件写法

<template><div><h1>main</h1><div>{{ value }}</div><inputtype="text":value="value"@input="$emit('input', $event.target.value)"/></div>
</template><script>
export default {props: {value: {type: String,},},
};
</script>

二、 vue2 的 v-bind.sync 修饰符语法糖,实现父子组件双向数据绑定

注意:子组件标签中可以同时使用多个 .sync 修饰符

1. 在父组件中

<template><div><h1>App</h1><input v-model="count" type="text" /><hr /><Children :count.sync="count"></Children><!-- 展开写法,@update:value中的 count 的值来自子组件输入框中的值 $event.target.value --><Children :count="count" @update:count="count = $event"></Children></div>
</template><script>
import Children from "@/components/Children.vue";
export default {components: {Children,},data() {return {count: "1",};},
};
</script>

2. 在子组件中

<template><div><h1>main</h1><h2>{{ count }}</h2><inputtype="text":value="count"@input="$emit('update:count', $event.target.value)"/></div>
</template><script>
export default {props: {count: {type: String,},},
};
</script>

三、 vue3 的 v-model 语法糖

  1. vue3 中的 v-model 相当于 vue2 中的 v-model 和 v-bind.sync 修饰符组合在一起的产物(择优整合)
  2. v-bind.sync 在 vue3 中被移除了
  3. 可以在组件标签上使用多个 v-model 绑定属性,使用参数区分

1. 在父组件中

<template><div><h1>App</h1><h2>{{ count }}</h2><input type="text" v-model="count" /><!-- 此展开写法,仅限于输入框 --><input type="text" :value="count" @input="count = $event.target.value" /><hr /><Children v-model:count="count"></Children><!-- 此展开写法,仅限于组件 --><Children :count="count" @update:count="count = $event"></Children></div>
</template><script>
import Children from "@/components/Children.vue";
import { ref } from "vue";export default {components: {Children,},setup() {const count = ref("1");return { count };},
};
</script>
2. 在子组件中
<template><div><h1>main</h1><div>{{ count }}</div><label>count:<inputtype="text":value="count"@input="emit('update:count', $event.target.value)"/></label></div>
</template><script>
export default {props: {count: {type: String,},},setup(props, { emit }) {console.log(props);return { emit };},
};
</script>


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/34359.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache Calcite - 使用框架Sql解析器解析Sql

前言 Calcite提供了org.apache.calcite.sql.parser.SqlParser来解析sql&#xff0c;通过访问者模式&#xff0c;在解析过程中访问Sql中的不同元素&#xff0c;最终完成特定的功能。 使用举例 使用Calcite解析SQL主要涉及以下几个步骤&#xff1a; 创建SqlParser对象&#xf…

Linux:基础IO(三.软硬链接、动态库和静态库、动精态库的制作和加载)

上次介绍了基础IO&#xff08;二&#xff09;&#xff1a;Linux&#xff1a;基础IO&#xff08;二.缓冲区、模拟一下缓冲区、详细讲解文件系统&#xff09; 文章目录 1.软硬链接1.1硬链接1.2软链接使用场景 2.动态库和静态库1.1回顾1.2静态库的制作和使用为什么要有库制作者角度…

重学java 85.Java反射、注解、枚举总结

凡事往好处想&#xff0c;人生便会豁达 —— 24.6.24 一、Junit单元测试 1.概述: Junit是一个单元测试框架,可以代替main方法去执行其他的方法 2.使用 a.导入jar包 b.注解 Test —— 单独执行一个方法 Before —— 在Test之前执行.有多少个Test执行.Before对应的方法就执行多少…

常见排序算法及其C语言实现

排序算法在计算机科学中是一个非常重要的主题。本文将详细介绍几种常见的排序算法&#xff0c;包括快速排序、归并排序、堆排序、冒泡排序、选择排序、插入排序、桶排序和二分查找插入排序&#xff0c;并提供每种算法的C语言实现代码。 1. 快速排序&#xff08;Quick Sort&…

毫米波移动通信系统中的波束赋形—模数混合的波束赋形架构

模数混合的波束赋形将波束赋形分为了模拟波束赋形与数字波束赋形两部分&#xff0c;其模拟部分通过移相器实现&#xff0c;数字部分通过基带预编码实现&#xff0c;&#xff0c;其结构如图2所示。当射频链路数目NRF为1时&#xff0c;认为其是一种特殊的模数混合的波束赋形。 此…

【计算机视觉】人脸算法之图像处理基础知识【七】

直方图均衡化 直方图均衡化是一种常用的图像处理技术&#xff0c;用于改善图像的对比度&#xff0c;特别是在图像的细节被埋没在暗部或亮部区域时。通过重新分配图像的像素强度值&#xff0c;使得图像的整体对比度增强&#xff0c;从而让更多的细节变得可见。 import cv2 imp…

最小生成树模板(prim,heap-prim,kruskal)

prim 出圈法&#xff0c;时间复杂度 O ( n 2 ) O(n^2) O(n2) #include<iostream> #include<vector> using namespace std; #define MAX_N 5000 #define inf 100000000 struct edge{int v,w; }; vector<edge>e[MAX_N5]; int d[MAX_N5],vis[MAX_N5]; int n,m…

IO-Iink事件

IO-LINK事件功能 IO-Link的事件功能是其通信协议中的一项重要特性&#xff0c;主要用于传输设备的故障信息和维护信息。IO-Link支持三种数据类型&#xff1a;过程数据、参数数据和事件数据。其中&#xff0c;事件数据就是用于此目的。 当IO-Link设备&#xff08;如传感器或执…

NepnepxCATCTF Pwn-Chao

文章目录 参考类型混淆异常处理的栈回退机制虚表和类的恢复假想的程序结构逆向工程场景步骤解析 idabug检查找虚表strupsc_str()alloca异常逆向maindisplayupdatecreate 新东西exp和思路 参考 https://www.cnblogs.com/winmt/articles/17018284.html 类型混淆 关于C中由虚函…

Java中如何解决BadPaddingException异常?

Java中如何解决BadPaddingException异常&#xff1f; 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在Java编程中&#xff0c;BadPaddingException异常是一个…

HarmonyOS Next开发学习手册——应用启动框架AppStartup

概述 AppStartup提供了一种简单高效的初始化组件的方式&#xff0c;开发者可以使用AppStartup来显示的设置组件的初始化顺序以及之间的依赖关系&#xff0c;支持异步初始化组件加速应用的启动时间。开发者需要分别为待初始化的组件实现AppStartup提供的 StartupTask 接口&…

DoubleSummaryStatistics 及其相关类之-简介

1. DoubleSummaryStatistics 使用简介 在Java 8中&#xff0c;DoubleSummaryStatistics 类被引入作为 java.util 包的一部分。它是一个用于收集统计数据&#xff08;如计数、最小值、最大值、和、平均值等&#xff09;的类&#xff0c;特别适用于处理 double 类型的数据。 Do…

【OpenGauss源码学习 —— (ALTER TABLE(修改表空间))】

ALTER TABLE&#xff08;列存删除列&#xff09; ALTER TABLE ... SET TABLESPACEExecChangeTableSpaceForRowTable 函数ATExecSetTableSpace 函数 ExecChangeTableSpaceForRowPartition 函数ATExecSetTableSpaceForPartitionP3 函数 ExecChangeTableSpaceForCStoreTable 函数C…

DeepSeek-Coder-v2击败GPT-4 Turbo,成为竞技场最强开源编码模型!

目录 01 编码与数学击败GPT-4 Turbo 02 深度求索&#xff1a;价格战的导火索 就在刚刚&#xff0c;竞技场排名再次刷新&#xff1a;深度求索的DeepSeek-Coder-v2成为竞技场最强开源编码模型&#xff01; 它在Coding Arena中已攀升至第4名&#xff0c;水平接近GPT-4 Turbo。 没…

mysql的information_schema浅析

information_schema 是 MySQL 中的一个虚拟数据库&#xff0c;它包含了关于 MySQL 服务器的所有元数据。 information_schema 作用 元数据管理&#xff1a;提供关于数据库、表、列、索引、权限等的信息。 性能优化&#xff1a;帮助了解数据库结构和索引使用情况&#xff0c;便…

Latex学习之“usefont”用法

Latex学习之“\usefont”用法 一、通俗的解释 \usefont 是 LaTeX 中的一个命令&#xff0c;用于在文档中临时改变字体&#xff0c;其基本语法如下&#xff1a; \usefont{字体编码}{字体族}{字体系列}{字体形状}这样看起来好像蛮抽象&#xff0c;你可能以及晕了&#xff0c;什…

QT中eventFilter的用途详解

QEventFilter 是 Qt 框架中的一个机制&#xff0c;用于拦截和处理事件。这在 Qt 的事件驱动模型中非常重要&#xff0c;因为它允许我们在事件到达目标对象之前捕获并处理它们。下面是对 QEventFilter 的详细解释&#xff0c;分为几个关键部分&#xff1a; 1. 事件处理机制 在…

Arduino称重传感器和 HX711 放大器(数字秤)

Arduino称重传感器和 HX711 放大器&#xff08;数字秤&#xff09; Arduino with Load Cell and HX711 Amplifier (Digital Scale) In this guide, you’ll learn how to create a digital scale with the Arduino using a load cell and the HX711 amplifier. First, you’l…

队列。。。

目的&#xff1a; 1&#xff0e;掌握队列存储结构的表示和实现方法。 2&#xff0e;掌握队列的入队和出队等基本操作的算法实现。 3&#xff0e;了解队列在解决实际问题中的简单应用。 要求&#xff1a; &#xff08;1&#xff09;根据输入的队列长度n和各元素值建立一个循环队…

Redis-使用 jedis 操作数据

文章目录 1、Jedis简介2、环境准备3、创建maven普通项目,导入如下依赖4、测试JAVA程序和Redis之间的通信 1、Jedis简介 "Jedis" 通常是作为 "Java Redis" 的缩写或简称来理解的。Java Embedded Data Structures Interface 表示 Java嵌入式数据结构接口 2、…