vue3 自定义组件 v-model 原理解析

2023-11-10

1. input 中的 v-model

<!-- my-input.vue -->
<!-- props:value值必须用modelValue命名 -->
<!-- emits:方法必须用update:modelValue命名 -->
<script setup>
  const props = defineProps({
    modelValue: String,
  });

  let emits = defineEmits(["update:modelValue"]);
  const updateValue = (event) => {
    emits("update:modelValue", event.target.value);
  };
</script>

<template>
  <div>
    <input :value="props.modelValue" @input="updateValue" />
    <span>子组件:{{ props.modelValue }}</span>
  </div>
</template>
<my-input v-model="value"></my-input>

2. naive-ui 组件二次封装 v-model

<!-- my-input.vue -->
<!-- props:value值必须用modelValue命名 -->
<!-- emits:方法必须用update:modelValue命名 -->
<script setup>
import { NInput } from "naive-ui";
const props = defineProps({
  modelValue: String,
});

let emits = defineEmits(["update:modelValue"]);

// 差别在这,直接value就是改变的值
const updateValue = (value) => {
  emits("update:modelValue", value);
};
</script>

<template>
  <div>
    <n-input :value="props.modelValue" @input="updateValue"></n-input>
    <span>子组件:{{ props.modelValue }}</span>
  </div>
</template>
<my-input v-model="value"></my-input>

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

vue3 自定义组件 v-model 原理解析 的相关文章

  • 如何测试 javascript 闭包内的函数

    这似乎是不可能的 也可能是 但我正在尝试更多的 TDD 但我总是在闭包方面碰壁 假设我有以下内容 function createSomething init function privateMethod param return init
  • 从数据 URI 解码 QR 码

    我尝试从数据 uri 中解码二维码 var dataUri data image gif base64 R0lGODdh9gD2AIAAAAAAAP ywAAAAA9gD2AAAC decodeQrCode dataUri cb 我已经尝试
  • Web 串行 API - 未捕获(承诺中)DOMException:无法打开串行端口/所需成员 baudRate 未定义

    下面的代码可以在我的 Xubuntu 机器上运行 但现在我在 Kubuntu 上 它不再工作了 它不会打开端口 Arduino IDE 工作正常 可以向开发板写入代码 并且我可以在 Chrome 中选择设备 Arduino Uno 但当我尝
  • TypeError: props.render 不是一个函数(React hook 形式)

    我将方法作为我用react hook form制作的形式的道具传递 当从react hook form添加控制器时 它给了我 TypeError props render不是一个函数 我在网上找不到任何解决方案 因此感谢任何帮助 impor
  • 如何重置使用 JavaScript 更改的 CSS 属性?

    我的导航按钮的宽度从 100px 增加到 150px 当鼠标悬停在 nav li hover width 150px 但是使用 javascript 我已经做到了 无论选择哪个选项 宽度都将继续为 150px 当选择每个选项时 它会使其他选
  • 如何防止 Iframe 在与浏览器交互后弄乱浏览器的历史记录?

    因此 就我而言 我使用 Iframe 将 Grafana 附加到我的页面 这为我提供了漂亮且易于使用的图表 可以注意到 每次在图表上进行放大或缩小 使用鼠标单击 交互后 Grafana 的 Iframe 都会在我的 Angular 页面上触
  • Jquery/Javascript 上传和下载文件,无需后端

    是否可以在没有后端服务器的情况下在 JavaScript 函数中下载和上传文件 我需要导出和导入由 JavaScript 函数生成的 XML 我想创建按钮 保存 xml 来保存文件 但我不知道是否可行 另一方面 我希望将 XML 文件直接上
  • 在javascript中解析json - 长数字被四舍五入

    我需要解析一个包含长数字的 json 在 java servlet 中生成 问题是长数字被四舍五入 当执行这段代码时 var s x 6855337641038665531 var obj JSON parse s alert obj x
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • 如何获取 vuejs 组件单元测试中定义的“this”变量

    我正在尝试在 npm 脚本中使用 mocha webpack 来测试 vuejs 组件 我在测试中像这样嘲笑 vuex 商店 const vm new Vue template div div
  • Angular 2+ 安全性;保护服务器上的延迟加载模块

    我有一个 Angular 2 应用程序 用户可以在其中输入个人数据 该数据在应用程序的另一部分进行分析 该部分仅适用于具有特定权限的人员 问题是我们不想让未经授权的人知道how我们正在分析这些数据 因此 如果他们能够在应用程序中查看模板 那
  • 如何使用tampermonkey模拟react应用程序中的点击?

    我正在尝试使用 Tampermonkey 脚本模拟对 React 元素的点击 不幸的是 由于 React 有自己的影子 DOM 所以天真的方法使用document querySelector 不工作 我遇到了一些需要修改 React 组件本
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • HTML 离线应用程序缓存,列出下载的文件

    作为我正在构建的离线 Web 应用程序的加载屏幕的一部分 使用缓存清单 http developer apple com library safari documentation iPhone Conceptual SafariJSData
  • FireFox 中的自动滚动

    我的应用程序是实时聊天 我有一个 Div 来包装消息 每条消息都是一个 div 所以 在几条消息之后 我的 DOM 看起来像这样 div div Message number two div div div div
  • 如何获取给定 DOM 元素的所有定义的 CSS 选择器?

    如何使用 jQuery 获取给定 DOM 元素的所有定义的 CSS 选择器 定义后 我的意思是在应用于任何样式表的所有 CSS 选择器document 在某种程度上 这类似于 FireBug 实现的功能 其中显示所选 DOM 元素的所有应用
  • 条件在反应本机生产中失败,但在开发中有效

    我创建了一个反应本机应用程序 我需要通过它进行比较 如果属实 就会执行死刑 问题是 该条件适用于 React Native 开发模式 而不适用于 React Native 生产版本 我使用 firebase 作为数据库 也使用 redux
  • JQuery 图像上传不适用于未来的活动

    我希望我的用户可以通过帖子上传图像 因此 每个回复表单都有一个上传表单 用户可以通过单击上传按钮上传图像 然后单击提交来提交帖子 现在我的上传表单可以上传第一个回复的图像 但第二个回复的上传不起作用 我的提交过程 Ajax 在 php 提交
  • 如何获取浏览器视口中当前显示的内容

    如何获取当前正在显示长文档的哪一部分的指示 例如 如果我的 html 包含 1 000 行 1 2 3 9991000 并且用户位于显示第 500 行的中间附近 那么我想得到 500 n501 n502 或类似的内容 显然 大多数场景都会比
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中

随机推荐

  • Java解一元二次方程

    import java util Scanner public class Calculate public static void main String args 创建键盘录入 Scanner sc new Scanner System
  • 网站搭建——Linux服务器环境搭建

    网站搭建 Linux服务器环境搭建 网站搭建 Linux服务器环境搭建 一 MySQL8安装 1 卸载MariaDB 2 下载 3 解压 4 安装MySql包 5 启动MySql 5 MySql临时密码 6 MySql设置 7 MySql登
  • kotlin支持Android低版本吗,如何从Android项目中删除Kotlin支持?

    步骤1 从build gradle Project 文件中删除或注释掉这些行 ext kotlin version 1 1 51 My kotlin version might be different from yours classpa
  • 如何用Nodejs写接口

    有时候前端需调用接口测试功能 但是相关的接口还没有开发好 或者没有相应的数据 这时候怎么办呢 这里教大家使用nodejs express写自己的接口 首先安装express cnpm install express save 然后新建js文
  • 9 种方法使用 Amazon CodeWhisperer 快速构建应用

    Amazon CodeWhisperer 是一款很赞的生成式人工智能编程工具 自从在工作中使用了 CodeWhisperer 我发现不仅代码编译的效率有所提高 应用开发的工作也变得快乐起来 然而 任何生成式 AI 工具的有效学习都需要初学者
  • redis的5种数据类型

    1 redis的5种数据类型 string 字符串 可以为整形 浮点型和字符串 统称为元素 list 列表 实现队列 元素不唯一 先入先出原则 set 集合 各不相同的元素 hash hash散列值 hash的key必须是唯一的 sort
  • 动态规划+状态压缩思路解决旅行者问题

    问题描述 小明目前在做一份毕业旅行的规划 打算从北京出发 分别去若干个城市 然后再回到北京 每个城市之间均乘坐高铁 且每个城市只去一次 由于经费有限 希望能够通过合理的路线安排尽可能的省一些路上的花销 给定一组城市和每对城市之间的火车票的价
  • 区块链技术在日常生活有那些影响?

    区块链首先是一种社会思潮 它预示着人类社会转型 换代的新时代的到来 区块链的技术基础是分布式网络架构 正是因为分布式网络技术的成熟 去中心 弱中心 分中心及共享 共识 共担的组织架构 商业架构和社会架构才有可能有效建立起来 大概就是从工程技
  • js实现约瑟夫问题(数目的游戏问题编程)

    17世纪的法国数学家加斯帕在 数目的游戏问题 中讲了这样一个故事 15个教徒和15 个非教徒在深海上遇险 必须将一半的人投入海中 其余的人才能幸免于难 于是想了一个办法 30个人围成一圆圈 从第一个人开始依次报数 每数到第九个人就将他扔入大
  • 将一个整数逆序输出·正序输出它的每一位数字

    逆序输出n的每位数字 void PrintReverse int n 定义一个函数 他的数据类型为整型 if n lt 0 printf n n 对于负数的整数 改变输出 的多少 do printf d n 10 当n不等于0时 n对10取
  • JAVA不可达代码

    说明这句代码之前有一个死循环 解决方法 一般是需要将代码放入死循环代码中 并设定一个停止循环代码的条件
  • golang jsoniter extension 处理动态字段

    1 背景 golang 原生 json 包 在处理 json 对象的字段的时候 是需要严格匹配类型的 但是 实际上 当我们与一些老系统或者脚本语言的系统对接的时候 有时候需要对类型需要做一下兼容 假设我们有以下需求 目标类型 输入 解析后
  • 图灵奖得主Judea Pearl:因果推断论文本周推荐(2022.8.8)

    刚刚 图灵奖得主 因果科学之父Judea Pearl 在推特上推荐了本周值得一读的10篇近期发表的因果推断相关论文 推荐列表下载 他评价道 他看到了人们对于 公平 责任 主题的兴趣日益浓厚 为帮助大家快速了解这些文章的主旨内容 我将推荐列表
  • python爬虫--Scrapy框架--Scrapy+selenium实现动态爬取

    python爬虫 Scrapy框架 Scrapy selenium实现动态爬取 前言 本文基于数据分析竞赛爬虫阶段 对使用scrapy selenium进行政策文本爬虫进行记录 用于个人爬虫学习记录 可供参考 由于近期较忙 记录得较粗糙 望
  • Windows10中Anaconda3安装手动设置环境变量以及安装pymysql

    安装Anaconda3时 在这一步 要把上面的设置环境变量勾选 这里由于我不想再卸载安装一次 所以是从网上找的图 这样安装好是没有问题的 如果我们没有勾选这个选项 那就需要我们手动配置环境变量了 首先点击win 找到Anaconde3的安装
  • 一、Confluence版本概述+服务器要求+安装前系统规划

    文章目录 一 Confluence版本概述 二 服务器要求 1 操作系统 2 硬件需求 3 云服务器推荐 三 安装前系统规划 整个安装过程将涉及到的目录 Linux系统 一 Confluence版本概述 Confluence根据安装方式来分
  • 重装Ubuntu系统(单系统)

    更新nvidia驱动后 重启电脑 无法打开 黑屏并且只有左上角有横杠闪烁 网上方法都不成功 于是决定重装系统 一 保存文件 1 开机并插入U盘 在黑屏界面 ctrl alt F1进入tty 输入用户账号密码进入 2 查看磁盘信息df命令 仅
  • Ubuntu18.04安装jdk1.8

    1 卸载Ubuntu18 04自带的openjdk Ubuntu18 04系统一般是自带openjdk的 首先要卸载openjdk然后再安装自己的jdk sudo apt get remove openjdk 2 Oracle官网下载jdk
  • Java自动化测试面向对象之package

    Java自动化测试面向对象之package 文章目录 Java自动化测试面向对象之package Java 包 package Java 包 package 为了更好地组织类 Java 提供了包机制 用于区别类名的命名空间 包的作用 1 把
  • vue3 自定义组件 v-model 原理解析

    1 input 中的 v model