当前位置: 首页 > news >正文

做空调的网站东平建设局网站

做空调的网站,东平建设局网站,网站开发的广告,网站正在紧急建设中v-model 本质是 prop 和 事件监听 的语法糖。 通过 prop 实现 数据 - 视图 的单向数据流#xff1b;通过监听 change 或 input 事件实现 视图 - 数据 的单向数据流。 /*** v-model 的实现* 注册了 created 和 beforeUpdate 两个钩子函数*/ const VModelText {/*** cr…v-model 本质是 prop 和 事件监听 的语法糖。 通过 prop 实现 数据 - 视图 的单向数据流通过监听 change 或 input 事件实现 视图 - 数据 的单向数据流。 /*** v-model 的实现* 注册了 created 和 beforeUpdate 两个钩子函数*/ const VModelText {/*** created 钩子函数* param {Object} el - 节点对象* param {Object} binding - binding 对象* param {Object} vnode - 虚拟节点对象* created 主要做了 3 件事* 1、将 js 对象的 value 赋值为元素的 value 属性* 2、通过 getModelAssigner 方法获取 props 中的 onUpdate:modelValue 属性赋值给元素的 _assign 属性* 3、通过 addEventListener 监听 input 标签的事件*/created(el, { value, modifiers: { lazy, trim, number } }, vnode) {// 1、将 js 对象的 value 赋值为元素的 value 属性数据 - 视图的单向数据流el.value value null ? : value// 2、通过 getModelAssigner 方法获取 props 中的 onUpdate:modelValue 属性赋值给元素的 _assign 属性el._assign getModelAssigner(vnode)// 判断是否配置了 number 或 元素的 type 为 numberconst castToNumber number || el.type number// 3、通过 addEventListener 监听 input 标签的事件// 根据 lazy 决定监听元素的 change 或 input 事件(change | input)addEventListener(el, lazy ? change : input, e {if (e.target.composing) return// 获取元素的新值let domValue el.value// 如果配置了 trim则调用 String.trim() 清除首尾空格if (trim) {domValue domValue.trim()}// 如果配置了 number 或元素的 type 为 number则转换成 number 后再赋值给元素else if (castToNumber) {domValue toNumber(domValue)}// 更新数据el._assign(domValue)})// 如果配置了 trim则调用 String.trim() 清除首尾空格if (trim) {addEventListener(el, change, () {el.value el.value.trim()})}// 如果没有配置 lazy则添加两个事件对中文输入法输入进行监听if (!lazy) {addEventListener(el, compositionstart, onCompositionStart)addEventListener(el, compositionend, onCompositionEnd)}},/*** beforeUpdata 钩子函数* param {Object} el - 节点对象* param {Object} binding - binding 对象* param {Object} vnode - 虚拟节点对象*/beforeUpdate(el, { value, modifiers: { trim, number } }, vnode) {el._assign getModelAssigner(vnode)if (document.activeElement el) {// 如果配置了 trim则将元素的值通过 String.trim() 清除首尾空格和再赋值给数据if (trim el.value.trim() value) return// 如果配置了 number 或 元素的 type 为 number则将元素的值转换为 number 再赋值给数据if ((number || el.type number) toNumber(el.value) value) return}const newValue value null ? : value// 更新前判断新旧值是否相同如果不同则把数据更新到 DOM 上if (el.value ! newValue) {el.value newValue}} }/*** 获取 model 分配器*/ const getModelAssigner (vnode) {const fn vnode.props[onUpdate:modelValue]return isArray(fn) ? value invokeArrayFns(fn, value) : fn }/*** 中文输入法触发的事件*/ function onCompositionStart(e) {e.target.composing true }/*** 中文输入法中确定输入的数据后触发的事件*/ function onCompositionEnd(e) {const target e.targetif (target.composing) {target.composing false// 手动触发 input 事件进行赋值trigger(target, input)} }
http://www.yutouwan.com/news/160050/

相关文章:

  • 网站建设编程怎么写做视频推广有哪几个网站
  • 展示型企业网站设计方案茶叶门户网站建立
  • 网站建设所需要的技术冯耀宗seo视频教程
  • 网站企业快速备案韩国优秀网站设计欣赏
  • 宁波做网站哪家好定制家具网
  • 做网站的又营业执照的吗网站开发 asp.net php
  • 京东网站建设目标a5网站诊断
  • 网站域名备案需要资料郑州知名做网站公司有哪些
  • 广东制作公司网站网站优化搜索
  • 深圳建设银行宝安支行网站钟楼区建设局网站
  • 有没有专门做ppt的网站郑州建设银行网站
  • 青海建设网站多少钱背景墙素材高清图片免费
  • wordpress企业网站模板查询个人信息的网站
  • 毕业设计网站开发选题依据外国酷炫网站
  • 好多职业培训网站是怎么做的联邦快递的网站建设
  • 网站项目建设方案专业营销的网站建设公司排名
  • 修改网站的设计wordpress最新的编辑器
  • 小学生编程网课前十名永康网站优化
  • 行业网站 源码有什么做家常菜的网站
  • chn域名网站哈尔滨电子政务网站建设
  • 网站建设金硕网络华为净亏26亿
  • 做的好的招投标网站图片常采用gif或jpeg格式
  • 志愿服务网站建设方案广东网站建设哪家有
  • 南宁网站建设团队汕头建站免费模板
  • 怎样做pdf电子书下载网站营业范围中网站开发与网页设计
  • html5网站有点深圳做网站应该怎么做
  • 房屋租赁网站建设如何给客户定位查域名注册人
  • 网站建站建设10大装修公司排行榜
  • asp.net网站本机访问慢为wordpress 转 app
  • 织梦做的网站要怎么放到浏览器wordpress functions.php在哪里