实现自定义input组件的v-model属性

  • 前言
  • 第一步
  • 第二步
  • 效果

前言

使用过一些ui框架的同学应该都知道input里面的值有一个绑定的v-model属性,这篇文章教大家如何给自己定义的input组件写一个v-model的绑定属性

第一步

创建名为modelValue的属性:

props: {modelValue: String},

第二步

在更新值的时候要发送一个名为update:modelValue的事件

const updateValue = (e: KeyboardEvent) => {const targetValue = (e.target as HTMLInputElement).valueinputRef.val = targetValuecontext.emit('update:modelValue', targetValue)}

详解:

  • KeyboardEvent事件对象用来监听键盘的输入
  • 拿到当前 input 里面的值 targetValue
  • 将 inputRef.val 的值更新为 targetValue
  • 最后在 context.emit 中写入 update:modelValue事件

注意在使用context.emit之前要在setup中添加第二个参数context

setup(props, context) {const inputRef = reactive({val: props.modelValue || '',error: false,message: ''})const updateValue = (e: KeyboardEvent) => {const targetValue = (e.target as HTMLInputElement).valueinputRef.val = targetValuecontext.emit('update:modelValue', targetValue)}
}

效果

组件写完之后直接在app.vue里面使用就可以了
导入ref :

import { defineComponent, reactive, ref } from 'vue'

然后在setup()中定义

const emailVal = ref('viking')

在输入框添加v-model属性,并在下面绑定值

输入框输入数字,下面内容也能显示对应的值

两步教你用Vue3+TS实现input组件的v-model属性相关推荐

  1. 分享一个基于Vue3+TS构建Cesium组件库

    分享一个基于Vue3+TS构建Cesium组件库 点击进入 Vue Cesium官网 //vc-navigation <template><el-row ref="view ...

  2. 只需两步,教你正确识别百度蜘蛛

    经常听到站长们问,百度蜘蛛是什么?最近百度蜘蛛来的太频繁服务器抓爆了,最近百度蜘蛛都不来了怎么办,还有很多站点想得到百度蜘蛛的IP段,想把IP加入白名单,但IP不固定,这些百度方面并未透露相关信息. ...

  3. 两步教你Linux修改主机名

    Linux修改主机名,网上许多教程写的都比较复杂,什么又要修改网络配置.hosts等. 实际上Linux修改主机名可简单通过如下两步完成: 1.临时性修改Linux主机名:hostname 新主机名 ...

  4. github的python代码怎么跑_python程序员一步两步教你使用GitHub!

    作为一个Python爬虫师一步步教你们怎么把代码放入到github 中! 首先呢我们下载一个git的客户端 学习Python中有不明白推荐加入交流群号: 前面548中间377后面875 群里有志同道合 ...

  5. 放大缩小不习惯?只需两步教你solid works如何设置反转滚轮缩放

    第一步,打开设置 第二步,在 "设置-视图" 中勾选 "反转鼠标滚轮缩放方向"最后点击确定  OK,现在缩放视图就更适合大部分人的习惯了.

  6. 扔掉U盘:两步教你如何使用硬盘装系统(适用gpt磁盘)

    原文地址:https://www.ithome.com/html/win10/303302.htm 很多同学在安装系统的时候习惯先把系统镜像刻录到U盘里,这样不仅不方便,U盘里的数据也需清空.如果你想 ...

  7. 极客DIY:只用两步教你制作一款可编程键盘 [译]

    原文出处:  Freebuf黑客与极客 对于那些工作时需要与许多组合键打交道的人(比如经常使用Photoshop的人)来说,一款可编程键盘无疑是十分实用的.本期的DIY将为大家带来一款可编程键盘,其制 ...

  8. mapbox进不去_Tableau 地图 | 两步教你用Mapbox

    继续昨天的地图主题,今天来聊聊如何能做更好看的地图,那就是:Mapbox (如果你是手机看的话,下边的gif点开后才可以看到动图) 这个回答写了关于GIF的情况 先说历史 2008年8月,Tablea ...

  9. 两步教你在Vue中设置登录验证拦截!

    Hello,你好呀,我是灰小猿,一个超会写bug的程序猿! 今天在做vue和springboot交互的一个项目的时候,想要基于前端实现一些只有登录验证之后才能访问某些页面的操作,所以在这里总结一下实现 ...

最新文章

  1. 赵本山说日本车。(笑死不偿命)
  2. php要求输入是个数求平均值、_【227期】EXCEL求平均值的各种套路汇聚合,最后难倒70%的人...
  3. [Jsoi2016]最佳团体 BZOJ4753 01分数规划+树形背包/dfs序
  4. 孙正义看未来30年:投资趋势,永远不会错
  5. 浅析Facebook LibraBFT与比原链Bystack BBFT共识
  6. 网站 服务器 用sqlite,sqlite服务器数据库
  7. NOI数据结构:最小树形图
  8. fatal error: openssl/evp.h: 没有那个文件或目录
  9. java动态规划法实例_动态规划法实现找零 java
  10. matlab做聚类分析瓶面柱状图,MATLAB聚类分析工具箱
  11. 1.3.1 计算机的主要性能指标 (机器字长、数据通路带宽、主存容量、运算速度、吞吐量、响应时间、主频和时钟周期、CPI、CPU执行时间、MIPS、MFLOPS、GFLOPS、TFLOPS)
  12. mysql分页合并同类项,人教版初三数学复习目录(全)
  13. 基于深度学习的CNN边缘检测RCF--Richer Convolutional Features for Edge Detection
  14. 计算机毕业设计springboot+vue基本微信小程序的校园二手商城的设计与实现
  15. 国产服务器的安全监控之法
  16. document.getElementById(id) 与 $(#id) 的区别
  17. SpringCloud知识点总结
  18. 齐振宏教授 变革领导力导师
  19. android go官方下载,安卓11go版本下载-安卓11go版本官方下载安装 -优盘手机站
  20. Activity has leaked window DecorView@992a599[XXXActivity] that was originally add

热门文章

  1. seraku智能android镜面,安卓智能镜面 边照镜子边看天气量体重
  2. SQL删除表中某字段下为空的数据
  3. 智慧楼宇篇 1 —— 室内定位技术(一) - RFID室内定位技术
  4. [职场话题]外地户口转广州户口有身什么条件?
  5. AD显示“Net has no driving source”的解决办法
  6. 基于颜色布局描述符(CLD)图像特征提取算法使用Python实现简单的人脸检测功能并使用PyQt5构建简单的功能界面(数字图像处理课程实验)
  7. 推荐一款非Win7下专用的“任务栏图标收纳”工具——TrayApp(转自:http://www.ibobosky.com/my-quick-start-tool-trayapp.htm)
  8. 企信通100短信平台对各个行业短信应用需求分析
  9. 半导体物理与器件 第六章
  10. 三星win平板刷linux,三星新专利:平板秒变Win10笔记本