当前位置:首页 > VUE

vue实现swr

2026-02-10 10:13:14VUE

实现 SWR(Stale-While-Revalidate)模式

SWR 是一种缓存策略,允许应用在后台重新验证数据的同时立即返回已缓存(可能过时)的数据。Vue 中可以通过组合式 API 或第三方库实现。

使用 @vueuse/coreuseFetch 实现

安装依赖:

npm install @vueuse/core

示例代码:

vue实现swr

<script setup>
import { useFetch } from '@vueuse/core'

const { data, error } = useFetch('https://api.example.com/data')
  .get()
  .json()
</script>

<template>
  <div v-if="error">Error: {{ error.message }}</div>
  <div v-else>{{ data }}</div>
</template>

自定义实现 SWR 逻辑

通过组合式 API 手动实现核心逻辑:

<script setup>
import { ref, onMounted } from 'vue'

const data = ref(null)
const error = ref(null)
const isLoading = ref(false)

async function fetchData() {
  isLoading.value = true
  try {
    const response = await fetch('https://api.example.com/data')
    data.value = await response.json()
  } catch (err) {
    error.value = err
  } finally {
    isLoading.value = false
  }
}

// 初始加载
fetchData()

// 定期重新验证(每30秒)
const interval = setInterval(fetchData, 30000)
onMounted(() => clearInterval(interval))
</script>

使用 swrv 专用库

专为 Vue 设计的 SWR 实现库:

vue实现swr

安装:

npm install swrv

示例:

<script setup>
import useSWRV from 'swrv'

const { data, error } = useSWRV('/api/data', fetcher)

function fetcher(url) {
  return fetch(url).then(r => r.json())
}
</script>

关键优化点

  • 设置适当的缓存时间(TTL)
  • 实现错误重试机制
  • 添加请求去重功能
  • 支持依赖请求(当参数变化时自动重新请求)

这些方法可以根据项目需求选择,轻量级场景推荐自定义实现,复杂场景建议使用 swrv 等专业库。

标签: vueswr
分享给朋友:

相关文章

vue实现生成二维码

vue实现生成二维码

使用qrcode.vue库生成二维码 安装qrcode.vue库: npm install qrcode.vue --save 在Vue组件中使用: <template> <…

vue实现ai

vue实现ai

Vue 实现 AI 功能 Vue.js 可以通过集成第三方 AI 服务或本地 AI 模型来实现 AI 功能。以下是几种常见的方法: 集成第三方 AI API 使用 Vue 调用如 OpenAI、Go…

vue实现缩放

vue实现缩放

Vue 实现缩放的方法 在 Vue 中实现缩放功能可以通过多种方式完成,以下是一些常见的方法: 使用 CSS transform 属性 通过 CSS 的 transform: scale() 属性可…

vue实现订单

vue实现订单

Vue 实现订单功能 订单数据结构设计 订单数据通常包含以下字段: order: { id: String, // 订单ID userId: String,…

vue实现mui

vue实现mui

使用 Vue 实现 MUI(Material-UI)风格的界面 Vue 本身不直接提供 MUI(Material Design)组件,但可以通过集成第三方库或手动实现来达到类似效果。以下是几种常见方法…

vue实现反馈

vue实现反馈

Vue 实现反馈功能的方法 在 Vue 中实现反馈功能可以通过多种方式,包括弹窗提示、Toast 消息、表单提交等。以下是几种常见的实现方法。 弹窗反馈 使用 Vue 的组件化特性创建一个弹窗组件,…