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

VUE簡單的定時器實時刷新的實現(xiàn)方法

 更新時間:2019年01月20日 11:04:38   作者:一個小前端  
這篇文章主要介紹了VUE簡單的定時器實時刷新的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

說明:我只是一個剛?cè)腴T的小前端,你們可以指導(dǎo)我,但千萬不要噴我,雖然我知道我很垃圾!人嗎,都是要成長的!大佬,請多多指教?。。?/p>

我前段時間剛剛寫了一個類似余股票的項目,上邊的K線圖是要實時去刷新的,所以要用vue做一個心跳,當(dāng)然大家也可以選擇用websocket,大佬們感覺肯定很簡單,但是我只是一個剛?cè)腴T的小前端,特此記錄一下。

思路

其實思路很簡單,首先要了解vue的生命周期和vue的內(nèi)置函數(shù),其思路就是先定義一個定時器,然后去定時請求后臺,到最后關(guān)閉這個定時器,哈哈,是不是都是廢話,但是確實如此,你們可以先去嘗試一下。

這個小功能實現(xiàn)的自我總結(jié)

一開始我感覺很簡單,不就是個心跳嗎,在methods 中定義一個timer函數(shù)返回一個setInterval和一個getData函數(shù),在timer中調(diào)用getData, 然后在created中去調(diào)用,其中就會有一個問題,就是剛進(jìn)來頁面不會有數(shù)據(jù),為什么想必大家肯定會知道,就是這是調(diào)用了一個定時器只有時間到了以后才會去請求后臺,這個不是很好解決嗎,在created 中在調(diào)用一次getData不就好了嗎,嗯,我就這樣做了,雖然我感覺不是很合理,啊啊啊啊,好煩,第一次寫不知道如何寫,還是用代碼來表達(dá),這樣比較清楚........

第一版,這樣很不合理,因為這樣會加載頁面發(fā)送兩次數(shù)據(jù),而且還有一個很大的雷,就是setInterval在網(wǎng)頁卸載是不會關(guān)掉,而且你再次進(jìn)入這個頁面時,定時器會加速,這個BUG應(yīng)該是因為vue切換頁面不會刷新的原因吧,請大佬指教。

<script>
  export default {
    created() {
      this.timer()
      this.getData()
    }
    methods: {
      // 這是一個獲取數(shù)據(jù)
      getData() {
        .....
      }
      // 這是一個定時器
      timer() {
        return setInterval(()=>{
          this.getData()
        },5000)
      }
    },
    destroyed() {
  clearInterval(this.timer)
    }
  }
</script>

第二版,我進(jìn)行了改進(jìn),我把setInterval換成了setTimeout,因為setTimeout只執(zhí)行一次,所以要靠函數(shù)去驅(qū)動它,然后我用到了updated,它也有一個弊端,就是有某一個數(shù)據(jù)更新,它就會觸發(fā),所以有時會執(zhí)行多次。

<script>
  export default {
    created() {
      this.getData()
    }
    methods: {
      // 這是獲取數(shù)據(jù)的函數(shù)
      getData() {
        .....
      }
      // 這是一個定時器
      timer() {
        return setTimeout(()=>{
          this.getData()
        },5000)
      }
    },
    updated() {
     this.timer() 
    }
    destroyed() {
  clearTimeout(this.timer)
    }
  }
</script>

最終版

監(jiān)聽list只要它變化就去觸發(fā)定時器,這樣就解決了updated的多次觸發(fā)。

<script>
  export default {
    data() {
      return {
        list: []  // 獲取的數(shù)據(jù)列表
      }
    }
    created() {
      this.getData()
    }
    methods: {
      // 這是獲取數(shù)據(jù)的函數(shù)
      getData() {
        .....
      }
      // 這是一個定時器
      timer() {
        return setTimeout(()=>{
          this.getData()
        },5000)
      }
    },
    watch: {
      list() {
      this.timer() 
      }
    }
    destroyed() {
  clearTimeout(this.timer)
    }
  }
</script>

總結(jié)

主要就是要了解vue的鉤子函數(shù)??赡苈┒春芏?,希望大佬多多指教,還有就是第一次寫,有點詞窮,請大家多多擔(dān)待。、

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

相關(guān)文章

  • vue實現(xiàn)組件切換效果的三種功能

    vue實現(xiàn)組件切換效果的三種功能

    這篇文章主要為大家介紹了在Vue中實現(xiàn)組件切換的三種方法,即使用條件渲染,使用動態(tài)組件以及通過點擊按鈕切換組件,有需要的小伙伴可以了解下
    2024-11-11
  • vue如何使用文件流進(jìn)行下載(new Blob)

    vue如何使用文件流進(jìn)行下載(new Blob)

    這篇文章主要介紹了vue如何使用文件流進(jìn)行下載(new Blob),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue等待數(shù)據(jù)渲染完成后執(zhí)行下一個方法問題

    vue等待數(shù)據(jù)渲染完成后執(zhí)行下一個方法問題

    這篇文章主要介紹了vue等待數(shù)據(jù)渲染完成后執(zhí)行下一個方法問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Vue懸浮窗和聚焦登錄組件功能實現(xiàn)

    Vue懸浮窗和聚焦登錄組件功能實現(xiàn)

    這篇文章主要介紹了Vue懸浮窗和聚焦登錄組件經(jīng)驗總結(jié),? 本文整理了實現(xiàn)懸浮窗以及聚焦登錄組件的功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-11-11
  • Vue實現(xiàn)購物車計算總價功能

    Vue實現(xiàn)購物車計算總價功能

    這篇文章主要為大家詳細(xì)介紹了Vue實現(xiàn)購物車計算總價功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue中引用文件路徑問題小結(jié)

    vue中引用文件路徑問題小結(jié)

    vue路徑分為絕對路徑、相對路徑、~+路徑?及?別名+路徑,在js中,引入帶別名的文件路徑,不需要在別名前加~?,在css或者style中引入的需要在路徑前面加~,路徑以?~?開頭,其后的部分將會被看作模塊依賴,本文給大家介紹vue中引用文件路徑問題,感興趣的朋友一起看看吧
    2023-12-12
  • 關(guān)于element?ui?表格中的常見特殊屬性說明

    關(guān)于element?ui?表格中的常見特殊屬性說明

    這篇文章主要介紹了關(guān)于element?ui?表格中的常見特殊屬性說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue.sync修飾符與$emit(update:xxx)詳解

    Vue.sync修飾符與$emit(update:xxx)詳解

    這篇文章主要介紹了Vue.sync修飾符與$emit(update:xxx),實現(xiàn)思路非常簡單,文章介紹了.sync修飾符的作用和使用.sync修飾符的寫法,實現(xiàn)代碼簡單易懂對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-11-11
  • 詳解基于Vue,Nginx的前后端不分離部署教程

    詳解基于Vue,Nginx的前后端不分離部署教程

    這篇文章主要介紹了詳解基于Vue,Nginx的前后端不分離部署教程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Vue3?Watch踩坑實戰(zhàn)之watch監(jiān)聽無效

    Vue3?Watch踩坑實戰(zhàn)之watch監(jiān)聽無效

    Vue.js中的watch選項用于監(jiān)聽Vue實例上某個特定的數(shù)據(jù)變化,下面這篇文章主要給大家介紹了關(guān)于Vue3?Watch踩坑實戰(zhàn)之watch監(jiān)聽無效的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05

最新評論

卫辉市| 鄂温| 潢川县| 清河县| 塘沽区| 剑川县| 黄冈市| 廉江市| 汉寿县| 河曲县| 昭通市| 隆化县| 五家渠市| 靖边县| 平阳县| 革吉县| 珲春市| 田东县| 本溪市| 阆中市| 宁海县| 资溪县| 绵竹市| 乌恰县| 乳源| 贵港市| 普兰店市| 长葛市| 慈利县| 安化县| 弋阳县| 玉山县| 五莲县| 那曲县| 广元市| 上思县| 贞丰县| 三原县| 乐山市| 渑池县| 汤阴县|