当前位置:首页 > 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实现mvc

vue实现mvc

Vue 实现 MVC 模式 Vue 本身是一个 MVVM(Model-View-ViewModel)框架,但可以通过结构调整实现 MVC(Model-View-Controller)模式。以下是具体实…

vue架构实现

vue架构实现

Vue 架构实现核心方案 Vue.js 的架构实现通常围绕模块化、组件化和状态管理展开。以下为常见实现方案: 基于单文件组件(SFC)的模块化 通过 .vue 文件组织模板、脚本和样式: <…

分页实现vue

分页实现vue

分页实现(Vue) 在Vue中实现分页功能通常需要结合前端分页逻辑和后端API支持。以下是两种常见的实现方式: 前端分页实现 适用于数据量较小的情况,直接在客户端完成分页逻辑。 <templ…

vue diff实现

vue diff实现

Vue Diff 算法实现原理 Vue 的虚拟 DOM Diff 算法(即 patch 过程)是其高效渲染的核心,主要通过对比新旧虚拟节点的差异,最小化 DOM 操作。以下是关键实现要点: 同层级比…

vue实现定时

vue实现定时

Vue 实现定时功能的方法 使用 setInterval 和 clearInterval 在 Vue 中可以通过 setInterval 和 clearInterval 实现定时功能。在组件的 mou…

vue首页实现

vue首页实现

实现Vue首页的基本步骤 创建一个Vue首页通常涉及项目初始化、页面结构设计、路由配置和组件开发。以下是具体实现方法: 初始化Vue项目 使用Vue CLI或Vite快速搭建项目结构: npm i…