成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

2025了,Vue3 中做輪詢的幾種最新方式

開發(fā) 前端
在 Vue3 中實(shí)現(xiàn)輪詢請(qǐng)求,以下是幾個(gè)值得推薦的解決方案和庫(包含原生方案和第三方庫)。

在 Vue3 中實(shí)現(xiàn)輪詢請(qǐng)求,以下是幾個(gè)值得推薦的解決方案和庫(包含原生方案和第三方庫),我根據(jù)實(shí)際開發(fā)經(jīng)驗(yàn)為你整理推薦清單:

方案

特點(diǎn)

適用場(chǎng)景

包大小

文檔評(píng)級(jí)

vue-request

功能全面的請(qǐng)求庫,內(nèi)置輪詢

需要完整請(qǐng)求管理

5.2kb

????

axios + 自封裝

靈活可控,需自行處理

簡(jiǎn)單輪詢需求

0kb

??

rxjs

響應(yīng)式編程庫

復(fù)雜輪詢邏輯

32kb

???

@vueuse/core

組合式API工具庫

組合式API項(xiàng)目

12kb

????

具體實(shí)現(xiàn)方案

(1) 推薦首選:vue-request(專為Vue3設(shè)計(jì))

npm install vue-request
<script setup>
import { useRequest } from 'vue-request';

// 輪詢獲取數(shù)據(jù)示例
const { data, loading } = useRequest(
  () => axios.get('/api/data'),
  {
    // 每3秒輪詢一次
    pollingInterval: 3000,
    // 錯(cuò)誤重試策略
    pollingWhenHidden: false, // 頁面隱藏時(shí)暫停
    pollingErrorRetryCount: 3
  }
);
</script>

<template>
  <div v-if="loading">加載中...</div>
  <div v-else>{{ data }}</div>
</template>

(2) 原生方案:使用 Composition API 封裝

// utils/usePolling.ts
import { ref, onUnmounted } from'vue';

exportfunction usePolling<T>(fn: () => Promise<T>, interval: number) {
const data = ref<T>();
const error = ref<Error>();
const isPolling = ref(true);

let timer: number;

const execute = async () => {
    try {
      data.value = await fn();
    } catch (err) {
      error.value = err asError;
    } finally {
      if (isPolling.value) {
        timer = setTimeout(execute, interval);
      }
    }
  };

const stop = () => {
    isPolling.value = false;
    clearTimeout(timer);
  };

// 自動(dòng)開始
  execute();

// 組件卸載時(shí)自動(dòng)清理
  onUnmounted(stop);

return { data, error, stop };
}
<script setup>
import { usePolling } from './utils/usePolling';

const { data, stop } = usePolling(
  () => fetch('/api/data').then(r => r.json()),
  5000
);
</script>

(3) 輕量級(jí)方案:@vueuse/core(推薦組合式API項(xiàng)目)

npm install @vueuse/core
<script setup>
import { useIntervalFn } from '@vueuse/core';

const data = ref();
const error = ref();

// 每5秒執(zhí)行一次
const { pause, resume } = useIntervalFn(async () => {
  try {
    data.value = await axios.get('/api/data');
  } catch (err) {
    error.value = err;
    pause(); // 出錯(cuò)時(shí)暫停
  }
}, 5000, { immediate: true });
</script>

(4) RxJS 方案(適合復(fù)雜場(chǎng)景)

npm install rxjs
<script setup>
import { interval, switchMap } from 'rxjs';
import { useObservable } from '@vueuse/rxjs';

const poll$ = interval(3000).pipe(
  switchMap(() => from(axios.get('/api/data')))
);

const data = useObservable(poll$);
</script>

選型建議

簡(jiǎn)單場(chǎng)景:

  • 使用 @vueuse/core 的 useIntervalFn
  • 優(yōu)點(diǎn):無需額外依賴,組合式API友好
  • 注意:需自行處理錯(cuò)誤和清理

完整請(qǐng)求管理:

  • 選擇 vue-request
  • 優(yōu)點(diǎn):內(nèi)置錯(cuò)誤重試、緩存、節(jié)流等高級(jí)功能

復(fù)雜輪詢邏輯:

  • 采用 RxJS
  • 優(yōu)點(diǎn):處理競(jìng)態(tài)條件、重試策略等復(fù)雜場(chǎng)景得心應(yīng)手

需要精細(xì)控制:

  • 自行封裝(推薦 usePolling 方案)
  • 優(yōu)點(diǎn):完全可控,適合特殊業(yè)務(wù)需求
責(zé)任編輯:趙寧寧 來源: 前端之神
相關(guān)推薦

2021-12-08 09:09:33

Vue 3 Computed Vue2

2022-03-24 20:42:19

Vue3API 設(shè)計(jì)Vue

2021-01-20 14:25:53

Vue3CSS前端

2021-08-23 13:25:25

Vue3CSS前端

2021-12-01 08:11:44

Vue3 插件Vue應(yīng)用

2024-05-24 08:37:46

2025-02-25 08:51:19

2021-11-30 08:19:43

Vue3 插件Vue應(yīng)用

2023-11-28 09:03:59

Vue.jsJavaScript

2025-03-26 10:29:22

Vue3前端API

2025-02-18 08:10:00

Vue 3JavaScrip開發(fā)

2024-07-01 13:45:18

2011-06-20 10:36:29

SEO

2021-12-02 05:50:35

Vue3 插件Vue應(yīng)用

2022-07-20 11:13:05

前端JSONVue3

2022-11-01 11:55:27

ReactVue3

2024-03-22 08:57:04

Vue3Emoji表情符號(hào)

2024-03-21 08:34:49

Vue3WebSocketHTTP

2020-09-19 21:15:26

Composition

2022-03-11 12:31:04

Vue3組件前端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 麻豆国产精品777777在线 | 午夜精品一区二区三区在线视频 | 国产最新精品视频 | 久久草视频 | 黄色免费三级 | 国产视频1区2区 | 免费能直接在线观看黄的视频 | 黄色成人在线网站 | 亚洲一区二区三区 | 日韩欧美网 | 久久新视频 | 精品国产91久久久久久 | 日韩一区二区三区av | 日韩欧美中文字幕在线视频 | 韩国av电影网 | 国产乱码精品1区2区3区 | 日本欧美在线视频 | 四虎影院久久 | 成人av网站在线观看 | 精品国产精品三级精品av网址 | 国产成年人视频 | 亚洲精品电影在线观看 | 欧美视频网 | 久久国产精品-国产精品 | 久久久精彩视频 | 久久久91精品国产一区二区三区 | 啪一啪在线视频 | av一区二区三区四区 | 亚洲一区精品在线 | 国产成人精品综合 | 国产一区二区电影 | 操久久 | 国产精品久久久久久久久久久新郎 | 国产精品99久久久久久动医院 | 91精品久久久久 | 久久国产精品视频 | 日韩中文在线视频 | 久久久久久久久淑女av国产精品 | 久久久亚洲精品视频 | 国产精品色 | 久久久婷 |