Vue3的emit(‘update:modelValue‘)

2023-11-05

目录

概述

正文

一、v-model 在原生 input 上的用法:

二、使用v-model在组件上实现双向绑定(通过计算属性实现)


概述

        在Vue3中,子组件可以通过$emit自定义事件来向父组件传递数据。在这种情况下,父组件可以通过监听子组件的自定义事件来获取数据并更新自己的状态。update:modelValue是Vue3中用于实现v-model的语法糖,它实际上是一个自定义事件,用于更新父组件中绑定的属性值。在子组件中,可以使用defineEmits来定义update:modelValue事件,然后通过$emit触发该事件来更新父组件中的属性值。

正文

一、v-model 在原生 input 上的用法:

<input v-model="searchText" />

等价于

<input
  :value="searchText"
  @input="searchText = $event.target.value"
/>

二、使用v-model在组件上实现双向绑定(通过计算属性实现)

当使用在一个组件上时,v-model 会被展开为如下的形式:

<CustomInput
  :modelValue="searchText"
  @update:modelValue="newValue => searchText = newValue"
/>

要让这个例子实际工作起来,<CustomInput> 组件内部需要做两件事:

  1. 通过defineEmits 拿到传递过来的 modelValue。
  2. 触发一个携带了新值的 update:modelValue 自定义事件
<!-- CustomInput.vue -->
<script setup lang="ts">
import { ref } from 'vue';

defineOptions({
    name: "CustomInput"
})

const props = defineProps(['modelValue']);
const emit = defineEmits(['update:modelValue']);

const defaultValue = ref<number>(0)

const changeFatherModelValue = () => {
    emit('update:modelValue', defaultValue.value ++);
}
</script>
<template>
    <div>
        <div>我是子组件</div>
        <div>我是父组件传过来的-----{{ modelValue }}</div>
        <button @click="changeFatherModelValue">更新父组件的value</button>
    </div>
</template>

现在 v-model 可以在这个组件上正常工作了:

<CustomInput v-model="searchText" />

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue3的emit(‘update:modelValue‘) 的相关文章

  • secure注册码&许可向导

    secure许可向导搜了半天也没找到能用的 搜注册码一搜就搜到了 Name meisi Company TEAM ZWT Serial Number 03 14 367662 License Key ACCFAX R9FHJ7 QZVS2P
  • 适合零基础学习的IT编程技术

    现在很多应届生 不管是否是计算机专业 都想毕业后从事IT行业 不仅是因为IT行业的薪资高 更主要是IT行业就业需求多 发展好 工作稳定 学IT 技术在手 天下我走 当然 IT行业有很多学科方向 学习哪个方向很重要 选择方向这件事 有时候就是
  • Lenet5实现及代码详解——以MINST数据集为例

    看了卷积神经网络 CNN 的原理及介绍 想着自己动手解决一个案例 在网上也看了很多博客 这里整理一下 顺便记录一下自己解决一个完成的CNN实例的过程 以便以后方便看 如果有不足之处 欢迎大家指正 数据获取与可视化操作 1 下载minst数据

随机推荐

  • Android Audio系统框架

    Audio System 二 之 Audio系统框架 二 Linux Audio系统框架 2 1 Application 层 2 2 Framework 层 2 3 Libraries 层 2 4 HAL 层 2 5 Tinyalsa 层
  • vue3 Failed to resolve component router-view

    Failed to resolve component router view If this is a native custom element make sure to exclude it from component resolu
  • unity常用核心类

    Transform 变换 主要用于控制物体的旋转 移动 缩放 Rotate eulerAngles Vector3 relativeTo Space Space Self void 旋转 游戏对象围绕Y轴旋转 transform Rotat
  • JqGrid实现分页相关

    jqGrid默认就提供了分页的功能 其在实现分页的时候有两个隐含的属性与后台交互及page 当前页 rows 每页显示的数据量 当请求下一页的时候请求数据头部默认包含这两个属性 如图 Page和rows传到后台 后台接收 要实现分页后台必须
  • unity 获取场景所有物体

    转载的 Unity 遍历场景所有物体 包括隐藏及被禁用的物体 用于获取所有Hierarchy中的物体 包括被禁用的物体 private List
  • mysql增加用户

    mysql增加用户 增加用户 注意 和上面不同 下面的因为是MYSQL环境中的命令 所以后面都带一个分号作为命令结束符 格式 grant select on 数据库 to 用户名 登录主机 identified by 密码 第一种 增加一个
  • CM5501高效四开关降压-升压控制器(升降压芯片)

    CM5501 High Efficiency 4 Switch Buck Boost Controller Description CM5501 is a synchronous 4 switch Buck Boost controller
  • elasticsearch-索引与分片实现原理

    添加索引 我们往 Elasticsearch 添加数据时需要用到 索引 保存相关数据的地方 索引实际上是指向一个或者多个物理 分片 的逻辑命名空间 一个 分片 是一个底层的 工作单元 它仅保存了全部数据中的一部分 在分片内部机制中 我们将详
  • InheritableThreadLocal类详解

    我们在使用ThreadLocal类的时候 可以保证各个线程使用自己的数据 而不相互干扰 但是如果我们有这样的一个需求 就是各个线程相互不干扰的情况下 各个线程的子线程可以访问到当前线程中的值 对于这个子线程来说就是访问父线程 public
  • Scrum那些事 - 什么是Scrum?

    1 什么是Scrum Scrum是敏捷开发方法论里面的一个具体实施框架 Scrum是一个包括了一系列的实践和预定义角色的过程骨架 是一种流程 计划 模式 用于有效率地开发软件 Scrum的框架中包含3种角色 3个产出 5个活动和5种价值观
  • 1.业务层 、服务层、数据层、表现层

    一般说来 业务逻辑层中的模块包含了系统所需要的所有功能上的算法和计算过程 并与数据访问层和表现层交互 抽象的说 业务逻辑层就是处理与业务相关的部分 一般来说 业务层包含一系列的执行与数据的操作 例如 开具发票 添加客户或下订单等 服务层就是
  • 《我的眼睛--图灵识别》第十章:实战演练:文字类识别

    我的眼睛 图灵识别 第十章 实战演练 文字类识别 1 标准数字 标准数字 Standard Numbers 是指10个数字使用的都是同属一种字体 它们的数字没有发生变形 没有扭曲 没有错位 存在有些变色但影响不大 字与字之间的间隔距离一样
  • Elasticsearch的简单入门:(二)ES基础

    Elasticsearch的简单入门 一 ES简介与安装 https blog csdn net kavito article details 88289820 前面我们把环境准备好了 下面继续学习ES的索引操作 2 操作索引 2 1 基本
  • Oracle VM VirtualBox安装Ubuntu虚拟机的过程记录

    一 版本信息 操作系统 Windows 10 家庭版 Oracle VM VirtualBox 版本 6 0 10 r132072 Qt5 6 2 Ubuntu 16 04 6 desktop amd64 二 创建过程 开始新建虚拟机 点击
  • 循环结构程序设计-第4关:C循环-水仙花数

    任务描述 本关任务 求出所有的水仙花数 提示 所谓水仙花数是指一个三位数 其各位数字的立方和等于该数字本身 比如153是一个水仙花数 因为153 1 3 5 3 3 3 注意 本题不需要输入语句 由于网站限制要求一定要有输入输出示例 但同学
  • 力扣每日一题【电话号码的字母组合】

    电话号码的字母组合 b站视频 class Solution public vector
  • ChatGPT将彻底改变人们的工作方式

    来源 企业网D1Net 关注公众号 人工智能学派 加入我们社群 免费领取官方chatGPT账号 自从OpenAI公司推出ChatGPT以来 它以风暴般的速度迅速影响了大量用户的日常工作和生活 并且已经通过医学院考试 软件工程师编码面试 律师
  • gorm记一次“mysql写入 Error 1366 (HY000): Incorrect string value”错误

    记一次 mysql写入 Error 1366 HY000 Incorrect string value 错误 环境go gorm docker mysql 写入数据库的内容为中文时提示Error 1366 HY000 Incorrect s
  • [管理与领导-88]:IT基层管理者 - 扩展技能 - 5 - 职场丛林法则 -2- 在职场丛林中的黑暗森林法则,在没有弄清楚情况前保持低调地调研

    前言 管理者空降到一个新的环境中 对环境中的人和事都不熟悉 此时的管理者不适合新官上任三把火 而应该意识到 环境中处处充满陷阱 危险 冷箭和一双双冷眼旁观的眼睛和暗箭 一 黑暗森林法则 黑暗森林法则 也被称为刘慈欣的科幻小说 三体 系列中提
  • Vue3的emit(‘update:modelValue‘)

    目录 概述 正文 一 v model 在原生 input 上的用法 二 使用v model在组件上实现双向绑定 通过计算属性实现 概述 在Vue3中 子组件可以通过 emit自定义事件来向父组件传递数据 在这种情况下 父组件可以通过监听子组