前沿

通过观察发现,中文输入完成之后,绑定的属性才更新;
面临的问题:中文输入过程中,每按下键盘就会触发input事件,而我们需要捕获中文真正输入完成后的事件,从而更新双向绑定的属性。所以,今天的主是CompositionEvent ,它表示用户间接输入文本(如使用输入法)时发生的事件。

composition event 说明
compositionstart 输入法编辑器开始新的输入合成时会触发
compositionupdate 字符被输入到一段文字的时候(这些可见字符的输入可能需要一连串的键盘操作、语音识别或者点击输入法的备选词)
compositionend 当文本段落的组成完成或取消时触发

vue中实现一个v-model

// 在vue中实现一个v-model
<template><div><p>{{value}}</p><inputtype="text"v-bind:value="value"v-on:input="onInput"@compositionstart="onCompositionstart"@compositionend="onCompositionend"/></div>
</template>
<script>
export default {data() {return {value: 'lilei',composing: false};},methods: {onInput(ev) {if (this.composing) {return;}this.value = ev.target.value;},onCompositionstart() {this.composing = true},onCompositionend(ev) {this.composing = false;this.onInput(ev);}}
};
</script>

html中实现一个v-model

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><p id="show"></p><input type="text" id="root" value=""><script>let value = 'lilei'let composing = falseconst $root = document.getElementById('root')$root.addEventListener('input', onInput)$root.addEventListener('compositionstart', onCompositionstart)$root.addEventListener('compositionend', onCompositionend)initValue($root, value)function onInput(ev) {if (composing) {return}value = ev.target.valueupdateValue('#show', value)}function onCompositionstart() {composing = true}function onCompositionend(ev) {composing = false;onInput(ev);}function updateValue(id, value) {document.querySelector(id).innerHTML = value}function initValue(dom, value) {dom.value = valueupdateValue('#show', value)}</script>
</body></html>

【vue】手动实现vue的v-model语法糖,以及控制在输入法完成之后才更新model相关推荐

  1. 【Vue教程】Vue.js推文

    为什么前端工程师的需求这么大 我国手机用户超过13亿,活跃智能机用户超过23亿部,全国网民人数约7.51亿.这么多人,每天都有几十分钟或者几个小时,要使用手机上网.全体中国人一年消费的网页和 App ...

  2. vue3 setup语法糖下父组件调用子组件的方法

    vue3下,父组件调用子组件的方法,如果使用了<script setup> 这种写法,那么子组件方法需要采用defineExpose()进行修饰,才能被外界调用.上代码: 1.子组件 _p ...

  3. Vue3在setup语法糖下的父子组件传值

    文章目录 前言 一.前期准备 二.初始化项目 1.父组件传值给子组件 2.子组件传值给父组件 3.完整代码 总结 前言 vue版本大于>3.2 使用setup语法糖 一.前期准备 setup介绍 ...

  4. 【JS语法糖】常见的几种JS语法糖

    [JS语法糖]常见的几种JS语法糖 今天遇到一个前端方面的新词汇 语 法 糖 第一次听到这个词 我的第一反应是:这是一个 糖 可能是像这样的: 或者 像这样: [PS:旺仔牛奶是不是该给我打钱了 ? ...

  5. Java中部分常见语法糖

    语法糖(Syntactic Sugar),也称糖衣语法,指在计算机语言中添加的某种语法,这种语法对语言本身功能来说没有什么影响,只是为了方便程序员的开发,提高开发效率.说白了,语法糖就是对现有语法的一 ...

  6. Vue2.x 核心基础(Vue概述,Vue基本使用,@vue/cli脚手架,Element-UI 的基本使用,Vue模板语法)

    1. Vue概述 尤雨溪:Vue.js的创建者 2014年2月,Vue.js正式发布 2015年10月27日,正式发布1.0.0 2016年4月27日,发布2.0的预览版本 Vue:渐进式JavaSc ...

  7. 01 【Vue简介 初识Vue 模板语法和数据绑定】

    1.Vue简介 1.1官网 英文官网 中文官网 1.2介绍与描述 Vue 是一套用来动态构建用户界面的渐进式JavaScript框架 ○构建用户界面:把数据通过某种办法变成用户界面 ○渐进式:Vue可 ...

  8. Vue.js----入门 (3)----v-bind、v-on、v-model等指令以及其语法糖的用法

    文章目录 一.指令   1.v-bind指令   2.v-on指令   3.v-model指令 一.指令   1.v-bind指令 v-bind指令是用来更新HTML元素的属性,其语法糖写法为用 : ...

  9. [vue] 你知道vue的模板语法用的是哪个web模板引擎的吗?说说你对这模板引擎的理解

    [vue] 你知道vue的模板语法用的是哪个web模板引擎的吗?说说你对这模板引擎的理解 模板引擎: 负责组装数据,以另外一种形式或外观展现数据. 优点: 可维护性(后期改起来方便): 可扩展性(想要 ...

最新文章

  1. 16岁日本神童打造日版「健康码」,追踪用户行动数据抗击疫情
  2. FPGA逻辑设计回顾(8)单比特信号的CDC处理方式之Toggle同步器
  3. 解决Loadrunner报not writing pre_cci.ci问题
  4. MiniGUI+qvfb+Eclipse完成嵌入式系统图形开发(开发环境的搭建)
  5. 如何在 ASP.NET Core 中实现全局异常拦截
  6. php一行多个商品,【后端开发】php一行展示多个商品怎么实现
  7. layDate1.0正式公布,您一直在寻找的的js日期控件
  8. 计算机不能打开管理员用户输入窗口,win10系统管理员账户无法打开某些程序的设置技巧...
  9. 可以免费领取卡巴斯基激活码的活动
  10. 一般纳税人税额计算_一般纳税人税率公式是什么样的,税额是怎么计算的-企业纳税|华律办事直通车...
  11. PbootCMS制作个性分页条之单页/总页数效果详细介绍教程
  12. 机器学习实战之朴素贝叶斯与垃圾邮件分类
  13. 独立视频LED显示屏控制系统
  14. Ranking 排行
  15. 大数据标准化白皮书(2020版) 附下载地址
  16. 苏州计算机云联盟协会,【缤FUN社团】计算机协会
  17. vs为什么打了断点不断_2019年亚洲羽毛球锦标赛半决赛焦点对阵:陈雨菲vs山口茜 德查波/莎西丽vs王懿律/黄东萍 周天成vs石宇奇...
  18. POI操作ppt图表完整示例演示
  19. 新手做跨境,到底应不应该选择虾扑erp?
  20. 实验17:DS18B20温度传感器

热门文章

  1. [数据结构]头插法与尾插法
  2. Unity3D入门(二):碰撞检测
  3. jquery怎么根据id获取元素值
  4. 以word转PDF为例,免费的文档格式转换方法分享
  5. SAP ABAP DUMP GETWA_NOT_ASSIGNED 指针未分配错误
  6. Delphi XE E2064 Left side cannot be assigned to 错误解决方法
  7. 创建订单【项目 商城】
  8. 怎么重装服务器的系统,怎么重装服务器操作系统
  9. DesignWare 加密文件 综合成GTECH 以便FPGA使用
  10. 深度学习loss函数理解