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

Vue項(xiàng)目中使用setTimeout存在的潛在問題及解決

 更新時(shí)間:2023年01月19日 10:57:10   作者:Tencent IT  
這篇文章主要介紹了Vue項(xiàng)目中使用setTimeout存在的潛在問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

使用setTimeout存在的潛在問題

在開發(fā)項(xiàng)目中遇到這樣的序曲,點(diǎn)擊按鈕彈框,每次進(jìn)入的時(shí)候都需要默認(rèn)選中Android,

這個(gè)時(shí)候就遇到了一個(gè)小坑,當(dāng)用戶點(diǎn)擊彈框后,選擇iOS,再點(diǎn)擊cancel或者OK,樓主在開發(fā)的時(shí)候,點(diǎn)擊cancel按鈕,執(zhí)行下面代碼

 this.showDialog = false; // 關(guān)閉彈框
 this.createForm.platform = "Android"; // 重置下拉框的默認(rèn)選擇項(xiàng)為Android
 this.createForm.secureCoreVersion = ""; // 清空輸入框的東西

然后

這幾行代碼在邏輯上看是正確的邏輯,但是實(shí)際頁面上顯示的樣子,卻不一樣,點(diǎn)擊cancel按鈕的時(shí)候,彈框關(guān)閉,但是彈框會(huì)在關(guān)閉前的一刻,下拉框選中的iOS 會(huì)閃一下,變成Android,體驗(yàn)不是很好,于是,樓主想到了使用setTimeout來解決問題,遂寫成如下代碼

this.showDialog = false;
setTimeout(() => {
      this.createForm.platform = "Android";
      this.createForm.secureCoreVersion = "";
}, 500);

把 清空彈框里面表單的東西放在了定時(shí)器里面,這樣就能避免在點(diǎn)擊關(guān)閉按鈕的時(shí)候,下拉框選項(xiàng)閃一下,變成默認(rèn)選項(xiàng)Android的問題。

但是,過了1天,有個(gè)同事跑過來跟我說,樓主的寫法存在一定的潛藏風(fēng)險(xiǎn),那就是使用了setTimeout定時(shí)器來處理這個(gè)問題,

他的回答是:

定時(shí)器一般只能用在寫動(dòng)畫里面,日常的業(yè)務(wù)邏輯層代碼盡量不要使用定時(shí)器,因?yàn)槎〞r(shí)器雖然表面上能解決這個(gè)問題,但是,如果用戶在設(shè)置的500毫秒以內(nèi)再次點(diǎn)擊cancel按鈕,就會(huì)出現(xiàn)問題,定時(shí)器的原理實(shí)際上就是把js執(zhí)行的這段代碼拿到一個(gè)宏任務(wù)里面,最后執(zhí)行

于是乎,p7水平的同事,跟我這樣說,可以換一種思路,

可以在點(diǎn)擊彈框彈出來的時(shí)候把彈框里面的選項(xiàng)都進(jìn)行重置,不需要在關(guān)閉彈框的時(shí)候進(jìn)行重置,其實(shí)是一個(gè)逆向思維的問題,在一開始點(diǎn)擊彈框打開的時(shí)候直接重置參數(shù),這樣就能巧妙的繞過在關(guān)閉彈框出現(xiàn)的問題通過elementUI dialog 組件自帶的 closed 回調(diào)函數(shù)來解決問題

elementUI 的官網(wǎng)里面關(guān)于dialog彈框,封裝了在關(guān)閉動(dòng)畫結(jié)束時(shí)執(zhí)行的回調(diào)函數(shù),直接在這個(gè)回調(diào)函數(shù)里面執(zhí)行重置選項(xiàng)的邏輯就好了

上代碼

最后樓主采用的是第二種方法來解決閃現(xiàn)的問題的

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue如何實(shí)現(xiàn)簡(jiǎn)易的彈出框

    vue如何實(shí)現(xiàn)簡(jiǎn)易的彈出框

    這篇文章主要介紹了vue如何實(shí)現(xiàn)簡(jiǎn)易的彈出框,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 詳解關(guān)于element級(jí)聯(lián)選擇器數(shù)據(jù)回顯問題

    詳解關(guān)于element級(jí)聯(lián)選擇器數(shù)據(jù)回顯問題

    這篇文章主要介紹了詳解關(guān)于element級(jí)聯(lián)選擇器數(shù)據(jù)回顯問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-02-02
  • Vue + OpenLayers 快速入門學(xué)習(xí)教程

    Vue + OpenLayers 快速入門學(xué)習(xí)教程

    大家都知道使用 Openlayers可以很靈活自由的做出各種地圖和空間數(shù)據(jù)的展示。而且這個(gè)框架是完全免費(fèi)和開源的,本文記錄下 Vue 使用 OpenLayers 入門,使用 OpenLayers 創(chuàng)建地圖組件的相關(guān)知識(shí),需要的朋友一起學(xué)習(xí)下吧
    2021-09-09
  • Vue 3 + Element Plus樹形表格全選多選及子節(jié)點(diǎn)勾選的問題解決方法

    Vue 3 + Element Plus樹形表格全選多選及子節(jié)點(diǎn)勾選的問題解決方

    在本文中,我們解決了Vue 3和Element Plus樹形表格中的全選、多選、子節(jié)點(diǎn)勾選和父節(jié)點(diǎn)勾選等常見問題,通過逐步實(shí)現(xiàn)這些功能,您可以構(gòu)建功能強(qiáng)大且用戶友好的樹形表格組件,以滿足各種數(shù)據(jù)展示需求,對(duì)Vue 3 Element Plus樹形表格相關(guān)知識(shí)感興趣的朋友一起看看吧
    2023-12-12
  • vue引入iconfont圖標(biāo)庫的優(yōu)雅實(shí)戰(zhàn)記錄

    vue引入iconfont圖標(biāo)庫的優(yōu)雅實(shí)戰(zhàn)記錄

    使用組件庫時(shí),圖標(biāo)往往不能滿足需求,所以我們常常需要用到第三方圖標(biāo)庫,這篇文章主要給大家介紹了關(guān)于vue引入iconfont的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • vue項(xiàng)目環(huán)境搭建?啟動(dòng)?移植操作示例及目錄結(jié)構(gòu)分析

    vue項(xiàng)目環(huán)境搭建?啟動(dòng)?移植操作示例及目錄結(jié)構(gòu)分析

    這篇文章主要介紹了vue項(xiàng)目環(huán)境搭建、啟動(dòng)、項(xiàng)目移植、項(xiàng)目目錄結(jié)構(gòu)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • Vue Class Component類組件用法

    Vue Class Component類組件用法

    這篇文章主要介紹了Vue Class Component類組件用法,組件 (Component) 是 Vue.js 最強(qiáng)大的功能之一,它是html、css、js等的一個(gè)聚合體,封裝性和隔離性非常強(qiáng)
    2022-12-12
  • vue+echarts圖表的基本使用步驟總結(jié)

    vue+echarts圖表的基本使用步驟總結(jié)

    這篇文章主要給大家介紹了關(guān)于vue+echarts圖表的基本使用步驟,Echarts是一款基于JavaScript的開源可視化圖表庫,而Vue是一種流行的JavaScript框架,用于構(gòu)建用戶界,需要的朋友可以參考下
    2023-11-11
  • vue項(xiàng)目中使用ueditor的實(shí)例講解

    vue項(xiàng)目中使用ueditor的實(shí)例講解

    下面小編就為大家分享一篇vue項(xiàng)目中使用ueditor的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 如何使用 Vuex的入門教程

    如何使用 Vuex的入門教程

    在vue中當(dāng)我們管理數(shù)據(jù)的時(shí)候比較亂,我們要用到下面的這個(gè)庫,本文主要介紹了如何使用 Vuex的入門教程,具有一定的參考價(jià)值,感興趣的可以了解一下
    2022-02-02

最新評(píng)論

芦溪县| 杭州市| 教育| 河池市| 翼城县| 司法| 海门市| 章丘市| 新竹县| 新河县| 沿河| 离岛区| 聊城市| 内黄县| 桂阳县| 抚顺县| 剑河县| 台北市| 南康市| 新田县| 平乐县| 灌南县| 富顺县| 锦屏县| 班玛县| 巴楚县| 龙口市| 绥化市| 浙江省| 平定县| 克拉玛依市| 新晃| 樟树市| 平潭县| 赞皇县| 来安县| 那坡县| 衡山县| 虹口区| 延长县| 靖安县|