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

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

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

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

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

思路

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

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

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

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

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

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

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

最終版

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

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

總結(jié)

主要就是要了解vue的鉤子函數(shù)??赡苈┒春芏啵M罄卸喽嘀附?,還有就是第一次寫,有點(diǎn)詞窮,請(qǐng)大家多多擔(dān)待。、

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

    Vue實(shí)現(xiàn)購(gòu)物車計(jì)算總價(jià)功能

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

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

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

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

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

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

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

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

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

    Vue3?Watch踩坑實(shí)戰(zhàn)之watch監(jiān)聽(tīng)無(wú)效

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

最新評(píng)論

高碑店市| 洪江市| 湄潭县| 社旗县| 黔东| 分宜县| 湘西| 福清市| 卢湾区| 阳城县| 溧阳市| 南和县| 彭州市| 昌乐县| 安塞县| 集安市| 武城县| 永宁县| 姜堰市| 韶关市| 额尔古纳市| 文成县| 十堰市| 东丽区| 柯坪县| 西盟| 景东| 旬邑县| 乐至县| 习水县| 香格里拉县| 鹤山市| 蓬溪县| 麻江县| 宜兰县| 荥经县| 利辛县| 泽州县| 山东省| 从江县| 印江|