最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue中@change兼容問(wèn)題詳解

 更新時(shí)間:2019年10月25日 14:21:30   作者:流眸Tel  
這篇文章主要介紹了vue中@change兼容問(wèn)題詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

@change問(wèn)題

1. 需求描述

需求:選擇日期,當(dāng)日期改變,則頁(yè)面相應(yīng)該日期的某些事件渲染

條件:

  • 移動(dòng)端
  • vue框架

2. 問(wèn)題產(chǎn)生及描述

問(wèn)題: 兼容性差距,由于@change觸發(fā)方式不同,導(dǎo)致時(shí)間加載不夠統(tǒng)一,時(shí)間觸發(fā)出現(xiàn)問(wèn)題。

描述如下:

使用vue做移動(dòng)端時(shí),由于需求需要,需要在頁(yè)面某處添加一個(gè)日期選擇的控件。由于不是面向用戶,內(nèi)部使用,因此本著不浪費(fèi)資源的原則,直接使用h5自帶的input:

<input type="date">

emm...CSS樣式不再贅述。然后綁定數(shù)據(jù),綁定change事件監(jiān)聽值變化:

<input type="date" v-model="date" @change="selectDate">
selecrDate () {
  // do something...
}

當(dāng)基本流程敲定后,在pc端沒(méi)問(wèn)題。但注意,我們此時(shí)討論的是移動(dòng)端效果,那么用pc端打開調(diào)試工具來(lái)模擬移動(dòng)端機(jī)型顯然是不足以代表移動(dòng)端真實(shí)場(chǎng)景的,因此需要在真機(jī)測(cè)試。ok,接下來(lái),差異化出現(xiàn)。
由于@change的特性是當(dāng)監(jiān)聽到數(shù)據(jù)發(fā)生變化時(shí)則執(zhí)行,因此差異便是暴露出來(lái):

  • 安卓:選擇完年月日,點(diǎn)擊確定后,數(shù)據(jù)變化,監(jiān)聽事件起作用;
  • iOS: 點(diǎn)擊選擇日期,選擇年,監(jiān)聽到數(shù)據(jù)變化一次,執(zhí)行一次selectDate,選擇月,監(jiān)聽到數(shù)據(jù)變化,再次執(zhí)行,選擇日,監(jiān)聽到數(shù)據(jù)變化,再執(zhí)行……選擇不停,執(zhí)行不停。

由于此不同端所存在的差異化,導(dǎo)致了我們必須“兼容”這個(gè)問(wèn)題。那么重點(diǎn)問(wèn)題出現(xiàn),如何兼容?

3. 解決方案

討論到此,我們必須想辦法先解決一個(gè)問(wèn)題:如何在iOS端,阻止掉每一次選擇都自動(dòng)執(zhí)行selectDate的問(wèn)題。此時(shí),經(jīng)過(guò)一番探尋查找,發(fā)現(xiàn)@blur方法可以替代iOS中的@change,說(shuō)干就干,盤他:

<input type="date" v-model="date" @blur="selectDate">

ok,找個(gè)蘋果機(jī)試一下,完美,選擇年月日莫的問(wèn)題,只有點(diǎn)擊確定之后才觸發(fā)該事件。但,所謂小人得志不可取,興高采烈的時(shí)候發(fā)現(xiàn)在安卓機(jī)上掛掉了。原因是在安卓機(jī)上選完以后,@blur事件并不會(huì)觸發(fā),除非選擇完成之后,點(diǎn)擊別的區(qū)域來(lái)觸發(fā)此事件。因此,我們又面臨一個(gè)兼容問(wèn)題,怎么同時(shí)保證在安卓和iOS系統(tǒng)上都能流暢運(yùn)行呢?

有辦法——js辨別系統(tǒng)是安卓還是iOS:

const u = navigator.userAgent, app = navigator.appVersion;
// Android 判斷
const isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1;
// iOS 判斷
const isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); 

if (isAndroid) {
  // 這個(gè)是安卓操作系統(tǒng)
  // do something
}

if (isIOS) {
  // 這個(gè)是iOS操作系統(tǒng)
  // do something
}

有了此步驟,那接下來(lái)的事兒就簡(jiǎn)單多了:

  • 如果是安卓系統(tǒng),則用@change;
  • 如果是iOS系統(tǒng),則用@blur;
  • 由于是移動(dòng)端,所以不考慮pc~;

完成~.~!

總結(jié)

總結(jié)以上,步驟如下:

  • 進(jìn)入頁(yè)面,執(zhí)行js腳本,判斷當(dāng)前設(shè)備型號(hào);
  • 如果是安卓設(shè)備,執(zhí)行@change;
  • 如果是iOS設(shè)備,執(zhí)行@blur。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • elementUI給el-tabs/el-tab-pane添加圖標(biāo)效果實(shí)例

    elementUI給el-tabs/el-tab-pane添加圖標(biāo)效果實(shí)例

    這篇文章主要給大家介紹了關(guān)于elementUI給el-tabs/el-tab-pane添加圖標(biāo)效果實(shí)例的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用elementUI具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-07-07
  • vue大型項(xiàng)目之分模塊運(yùn)行/打包的實(shí)現(xiàn)

    vue大型項(xiàng)目之分模塊運(yùn)行/打包的實(shí)現(xiàn)

    這篇文章主要介紹了vue大型項(xiàng)目之分模塊運(yùn)行/打包的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • vue-cli3 karma單元測(cè)試的實(shí)現(xiàn)

    vue-cli3 karma單元測(cè)試的實(shí)現(xiàn)

    這篇文章主要介紹了vue-cli3 karma單元測(cè)試的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • django中使用vue.js的要點(diǎn)總結(jié)

    django中使用vue.js的要點(diǎn)總結(jié)

    在本篇文章里小編給各位整理了關(guān)于django中使用vue.js需要注意的地方以及相關(guān)知識(shí)點(diǎn),需要的朋友們跟著學(xué)習(xí)參考下。
    2019-07-07
  • vue element插件this.$confirm用法及說(shuō)明(取消也可以發(fā)請(qǐng)求)

    vue element插件this.$confirm用法及說(shuō)明(取消也可以發(fā)請(qǐng)求)

    這篇文章主要介紹了vue element插件this.$confirm用法及說(shuō)明(取消也可以發(fā)請(qǐng)求),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue2單一事件管理組件通信

    Vue2單一事件管理組件通信

    這篇文章主要為大家詳細(xì)介紹了Vue2單一事件管理組件通信的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Vue3計(jì)算屬性是如何實(shí)現(xiàn)的

    Vue3計(jì)算屬性是如何實(shí)現(xiàn)的

    這篇文章主要介紹了Vue3計(jì)算屬性是如何實(shí)現(xiàn)的,對(duì)于任何包含響應(yīng)式數(shù)據(jù)的復(fù)雜邏輯,我們都應(yīng)該使用計(jì)算屬性,更多相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-08-08
  • vue3使用video.js播放m3u8格式視頻的操作指南

    vue3使用video.js播放m3u8格式視頻的操作指南

    有時(shí)候我們需要播放 m3u8 格式的視頻,或者實(shí)現(xiàn)視頻播放器更多定制化需求,HTML 的 video 元素?zé)o法實(shí)現(xiàn)這些需求,這時(shí)候可以考慮使用 Video.js,本文給大家介紹了vue3使用video.js播放m3u8格式視頻的操作指南,需要的朋友可以參考下
    2024-07-07
  • vue實(shí)現(xiàn)將時(shí)間戳轉(zhuǎn)換成日期格式

    vue實(shí)現(xiàn)將時(shí)間戳轉(zhuǎn)換成日期格式

    這篇文章主要介紹了vue實(shí)現(xiàn)將時(shí)間戳轉(zhuǎn)換成日期格式方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,
    2023-10-10
  • vue如何對(duì)一個(gè)數(shù)據(jù)過(guò)濾出想要的item

    vue如何對(duì)一個(gè)數(shù)據(jù)過(guò)濾出想要的item

    這篇文章主要介紹了vue如何對(duì)一個(gè)數(shù)據(jù)過(guò)濾出想要的item問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10

最新評(píng)論

昌都县| 葵青区| 泰顺县| 黎川县| 西平县| 涿鹿县| 贡觉县| 安乡县| 略阳县| 蕲春县| 东莞市| 静乐县| 榕江县| 门源| 桂东县| 广安市| 湾仔区| 故城县| 南丰县| 揭东县| 漠河县| 上杭县| 温州市| 鄢陵县| 河间市| 凤冈县| 大英县| 四子王旗| 荆门市| 东城区| 冕宁县| 尉氏县| 宜宾市| 天柱县| 武陟县| 沙湾县| 泰宁县| 浏阳市| 阳西县| 扶绥县| 赤城县|