日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

vue使用自定義事件的表單輸入組件用法詳解【日期組件與貨幣組件】

瀏覽:27日期:2023-01-16 17:15:09

本文實例講述了vue使用自定義事件的表單輸入組件用法。分享給大家供大家參考,具體如下:

自定義事件可以用來創建自定義的表單輸入組件,使用 v-model 來進行數據雙向綁定。

v-model的實現原理 :

<input v-model='something'>

這不過是以下示例的語法糖:

<inputv-bind:value='something'v-on:input='something = $event.target.value'>

在開發項目中,當遇到日期數據時,往往后臺的日期數據都為long型,而前臺顯示成日期型,在使用v-model時,需要轉換一下,為了簡化轉換過程,對此實現自定義日期輸入組件,該組件接收long型日期數據,顯示為date型,通過v-model實現雙向綁定

自定義日期輸入組件實現代碼:

dates.vue組件

<template> <input ref=’dateinput’ type='date' v-bind:value='svalue(value)' v-on:input='uvalue($event.target.value)' /></template><script type='text/javascript'> export default{ props:[’value’], methods:{ svalue(value){if(value) { return $api.dateFormat(value);}else{ return ’’;} }, uvalue(value){var _val = value.split(’-’);//大于1970時才觸發事件,以防止用戶手動輸入年份時計算不正確if(value && _val[0]>=1970){ this.$emit(’input’,$api.getLong(value));} } } } //dateFormat函數 long轉date型 var dateFormat=function(longTypeDate){ var dateType = ''; if(longTypeDate){ longTypeDate = parseInt(longTypeDate); var date = new Date(longTypeDate); dateType += date.getFullYear(); //年 dateType += '-' + getMonth(date); //月dateType += '-' + getDay(date); //日 }else{ dateType = (new Date()).format('yyyy-MM-dd') ; } return dateType; } //返回 01-12 的月份值 var getMonth=function (date){ var month = ''; month = date.getMonth() + 1; //getMonth()得到的月份是0-11 if(month<10){ month = '0' + month; } return month; } //返回01-30的日期 var getDay=function (date){ var day = ''; day = date.getDate(); if(day<10){ day = '0' + day; } return day; } //getLong函數 date轉long型 var getLong = function(date){ date=Date.parse(date.replace(new RegExp('-','gm'),'/')); return date; }</script>

使用方法

<template> <div> <dates name='guaranteeBeginDay' v-model='guaranteeBeginDay' /> </div></template><script> import dates from ’../dates/dates.vue’ export default{ data(){ return {guaranteeBeginDay:1509697628823 //long型數據 } } }</script>

項目需求,在表單中貨幣組件,用戶輸入數字,為其自動添加逗號分隔符,且只能輸入數字,限制小數點后最多兩位,實現了自定義貨幣組件

自定義貨幣組件實現代碼:

currency.vue組件

<template> <input refs='currencyinput' type='text' v-bind:value='showValue(value)' v-on:input='updateValue($event)' /></template><script type='text/javascript'> export default{ props:[’value’], methods:{ showValue(value){if(!!!value){ return ’0’;}return (value+’’).replace(/d{1,3}(?=(d{3})+(.d*)?$)/g, ’$&,’); }, updateValue(el){var value = el.target.value ;value = value.replace(/[^d.]/g,'') .replace(/.{2,}/g,'.') .replace('.','$#$').replace(/./g,'').replace('$#$','.') .replace(/^(-)*(d+).(dd).*$/,’$1$2.$3’);//只能輸入兩個小數 if(value.indexOf('.') < 0 && value !=''){//以上已經過濾,此處控制的是如果沒有小數點,首位不能為類似于 01、02的金額 if(value.substr(0,1) == ’0’ && value.length == 2){ value = value.substr(1,value.length); } }el.target.value = value.replace(/d{1,3}(?=(d{3})+(.d*)?$)/g, ’$&,’);this.$emit(’input’, value); } } }</script>

使用方法

<template> <div> <currency name='money' v-model='money' /> </div></template><script> import dates from ’../currency/currency.vue’ export default{ data(){ return {money:12934350.34 } } }</script>

實例圖片

vue使用自定義事件的表單輸入組件用法詳解【日期組件與貨幣組件】

一開始不明白

自定義組件中綁定的input事件中

this.$emit(’input’,$api.getLong(value)); || this.$emit(’input’, value);

的含義

為什么input事件中還要觸發input事件,這樣不就造成循環調用了嗎,后來深入研究,

才明白,$emit是用于子組件觸發父組件的事件函數,所以此處的input事件為調用該組件的父組件的input事件

<dates name='guaranteeBeginDay'v-model='guaranteeBeginDay' /> || <currency name='money' v-model='money' />

而父組件的input事件則是v-model的實現原理

<inputv-bind:value='something'v-on:input='something = $event.target.value'>

所以子組件的input事件會觸發父組件的input事件,進而改變vue data數據,data數據變化觸發v-bind:value來更新頁面數據顯示。

希望本文所述對大家vue.js程序設計有所幫助。

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲欧美日本国产| 国产精品日本一区二区不卡视频| 欧美精品国产白浆久久久久| 国产一区不卡| 欧美片网站免费| 国产亚洲精品自拍| 欧美搞黄网站| 久久久久九九精品影院| 日产欧产美韩系列久久99| 亚州国产精品| 国产一区二区高清| 亚洲日本欧美| 久久超碰99| 婷婷亚洲精品| 欧美另类中文字幕 | 国产亚洲精品久久久久婷婷瑜伽| 国产欧美亚洲一区| 伊人影院久久| 97人人精品| 日本成人手机在线| 亚洲国内欧美| 国产中文欧美日韩在线| 亚洲久久视频| 欧美成人亚洲| 国产中文在线播放| 国产欧美日韩一级| 在线精品视频一区| 日韩一级网站| 久久国产毛片| 免费福利视频一区二区三区| 国产精品流白浆在线观看| 中文日韩在线| 中文一区一区三区免费在线观 | 成人日韩精品| 婷婷成人av| 欧美日韩亚洲国产精品| 日韩综合精品| 亚洲一区成人| 日本午夜精品| 精精国产xxxx视频在线野外| 国产在线成人| 色狠狠一区二区三区| 国产欧美在线观看免费| 精品亚洲免a| 首页国产欧美久久| 日韩精品一区二区三区免费视频| 国产欧美激情| 亚洲欧美日韩国产一区| 国产精品嫩草影院在线看| 精品成av人一区二区三区| 亚洲精品国产嫩草在线观看 | 国产一卡不卡| 亚洲一级网站| 国产精品videossex久久发布| 国产一区二区高清| 日产精品一区二区| 亚洲综合五月| 伊人久久视频| 91p九色成人| 久久要要av| 国产精品3区| 不卡中文一二三区| 亚洲二区三区不卡| 欧美a一区二区| 欧美综合社区国产| 青青国产精品| 色婷婷成人网| 亚洲精品精选| 视频一区视频二区中文| 美女视频一区在线观看| 亚洲欧洲国产精品一区| 一区在线观看| 日本欧美不卡| 国产精品黑丝在线播放| 麻豆精品在线| 麻豆中文一区二区| 婷婷综合五月| 欧美1区2区3区| 欧美日韩高清| 久久精品青草| 一区在线观看| 日韩激情精品| 91精品丝袜国产高跟在线| 日韩不卡一区二区三区| 日韩免费精品| 热久久久久久| 久久xxx视频| 成人在线视频免费看| 久久精品国产福利| 久久精品亚洲人成影院| 99久久久久| 欧洲av不卡| 在线日韩一区| 久久国产精品久久久久久电车| 老牛影视精品| 香蕉成人久久| 欧美在线91| 久久成人高清| 亚洲精品1区| 69堂精品视频在线播放| 日韩精品久久理论片| 欧美国产偷国产精品三区| 欧美日韩一二| 一区二区亚洲视频| 久久久久久久久成人| 国产一区91| 国产一区二区三区成人欧美日韩在线观看| 亚洲精品黄色| 色偷偷偷在线视频播放| 免费成人av在线播放| 日韩超碰人人爽人人做人人添| 亚洲一级二级| 精品美女在线视频| 欧美jjzz| 日韩高清成人| 麻豆国产欧美一区二区三区 | 亚洲综合精品四区| 久久精品亚洲人成影院 | 日韩中文字幕区一区有砖一区| 免费看久久久| 美女精品网站| 日韩综合在线| 国产精品videossex久久发布| 视频在线在亚洲| 韩国三级一区| 国产在视频一区二区三区吞精| 奇米狠狠一区二区三区| 欧美/亚洲一区| 国内自拍视频一区二区三区| 日韩高清电影一区| 日韩精品导航| 视频一区国产视频| 欧美日韩一区二区三区视频播放| 麻豆视频在线看| 国产精品黑丝在线播放| 国精品产品一区| 久久精品国产亚洲一区二区三区| 亚洲在线免费| 在线免费观看亚洲| 日韩精品成人| 91久久亚洲| 国产模特精品视频久久久久| 青青久久av| 日本欧美一区二区| 亚洲精品激情| 日韩精品一区二区三区av| 国产精品美女| 国产亚洲一区二区手机在线观看| 久久美女性网| 成人av二区| 精品丝袜在线| 香蕉久久夜色精品国产| 天海翼亚洲一区二区三区| 久久精品一区二区三区中文字幕| 麻豆中文一区二区| 在线一区视频观看| 亚洲一区国产| 蜜桃视频一区二区| 国产欧美三级| 99精品在线观看| 亚洲精品.com| 偷拍欧美精品| 性感美女一区二区在线观看| 亚洲播播91| 日韩福利在线观看| 精品国产91| 国产一区三区在线播放| 激情久久久久久久| 午夜亚洲福利| 日韩大片在线| 亚洲欧美日韩国产一区二区| 国产亚洲观看| 国产精品99免费看| 国产日韩欧美中文在线| 麻豆精品少妇| 蜜桃视频一区二区三区在线观看| 日本不卡一区二区三区| 日韩国产在线| 蜜桃视频免费观看一区| 日韩一区三区| 日韩va亚洲va欧美va久久| 欧美天堂在线| 亚洲欧美日韩一区在线观看| 亚洲免费毛片| 私拍精品福利视频在线一区| 久久99久久人婷婷精品综合| 免费在线欧美视频| 影音国产精品| 日本一区二区高清不卡| 国产精品一区二区免费福利视频| 99在线精品视频在线观看| 国产欧美丝祙| 亚洲尤物av| 午夜在线播放视频欧美| 日韩中文首页| 免费一二一二在线视频| 国产伦精品一区二区三区在线播放 | 国产欧美日韩影院| 婷婷久久免费视频| 日本亚洲不卡|