swr-vue

Vue composables for Data fetching
1,877 13
Install
npm install swr-vue
Latest Version:1.9.1
Vue:3
License:MIT
Last Updated:Apr 12, 2023
Links: GitHub  ·  npm
Maintainer: edumudu

Vue Swr

Introduction

swr-vue is a Vue composables library for data fetching.

The name “SWR” is derived from stale-while-revalidate, a cache invalidation strategy popularized by HTTP RFC 5861. SWR first returns the data from cache (stale), then sends the request (revalidate), and finally comes with the up-to-date data again.

Features
  • Fast and reusable data fetching
  • Transport and protocol agnostic
  • Built-in cache and request dedulication
  • Revalidation on focus
  • Revalidation on network recovery
  • Polling
  • Local mutation (Optimistic UI)
  • Type safe
  • Configurable

For a more details you can visit the documentation

If you are looking to contribute, please check CONTRIBUTING.md

Quick Start

<script setup lang="ts">
import { useSWR } from 'swr-vue';

const fetcher = async (url) => {
  const res = await fetch(url);
  
  return res.json();
}

const { data, error } = useSWR('/api/user', fetcher);
</script>

<template>
  <div v-if="error">failed to load</div>
  <div v-else-if="!data">loading...</div>
  <div v-else>hello {{ data.name }}!</div>
</template>

In this example, the composable useSWR accepts a key and a fetcher function. The key is a unique identifier of the request, normally the URL of the API. And the fetcher accepts key as its parameter and returns the data asynchronously.

useSWR returns 2 values: data and error. When the request is not yet finished, data and error will be undefined. And when we get a response, it sets data and error based on the result of fetcher.

fetcher can be any asynchronous function, you can use your favourite data-fetching library to handle that part.


Thanks

swr-vue is inspired by these great works:

License

The MIT License.

Related Packages

@nanostores/query

Tiny remote data fetching library for Nano Stores

509,294 339
vue2-request-utils

Vue 3 composition API for data fetching. This is a version for Vue 2 by using @v...

592 1
@robot-admin/request-core

Instance-scoped Axios orchestration and headless CRUD composables for Vue 3

1,076 2
vue-request

This is a library that can easily help you manage request states, supporting com...

233,950 1,393
@recached/vue

Official Vue 3 composables for Recached: reactive refs over the local browser ca...

2,865 1

Version History

Version Released Vue License
1.9.1 ^3.2.33 MIT
1.9.0 ^3.2.33 MIT
1.8.0 ^3.2.33 MIT
1.7.3 ^3.2.33 MIT
1.7.2 ^3.2.33 MIT