swr README

The project's README from github.com/vercel/swr. As one markdown file: README.md.

SWR


Introduction

SWR is a React Hooks 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.

With just one hook, you can significantly simplify the data fetching logic in your project. And it also covered in all aspects of speed, correctness, and stability to help you build better experiences:

...and a lot more.

With SWR, components will get a stream of data updates constantly and automatically. Thus, the UI will be always fast and reactive.


View full documentation and examples on swr.vercel.app.


Quick Start

import useSWR from 'swr'

function Profile() {
  const { data, error, isLoading } = useSWR('/api/user', fetcher)

  if (error) return <div>failed to load</div>
  if (isLoading) return <div>loading...</div>
  return <div>hello {data.name}!</div>
}

In this example, the React Hook 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 also returns 3 values: data, isLoading and error. When the request (fetcher) is not yet finished, data will be undefined and isLoading will be true. When we get a response, it sets data and error based on the result of fetcher, isLoading to false and rerenders the component.

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


View full documentation and examples on swr.vercel.app.


Authors

This library is created by the team behind Next.js, with contributions from our community:

Contributors

Thanks to Ryan Chen for providing the awesome swr npm package name!


License

The MIT License.

swr (vercel/swr)

Searching Database…

32.5K ·GitHub
Что это такое?SWR — это библиотека React Hooks для получения данных. Название происходит от stale-while-revalidate (HTTP RFC 5861): сначала показываются кешированные данные, затем запрос перепроверяется и свежие данные обновляют интерфейс.
Это библиотека, которую я устанавливаю, или облачный сервис?Это библиотека для установки — по сути это один React-хук useSWR, который вы просто добавляете в свои компоненты. Она быстрая, лёгкая и не зависит от транспорта и протокола, поэтому работает с любым бэкендом.
Как добавить её в свой React-проект?Установите пакет swr из npm, затем вызовите useSWR с ключом (обычно это URL вашего API) и функцией fetcher. Она возвращает data, isLoading и error, а полная документация есть на swr.vercel.app.
Мне нужен Axios или другая библиотека для получения данных, чтобы это работало?Нет — в качестве fetcher подойдёт любая асинхронная функция, так что обычного fetch достаточно. Можно также подключить любимую библиотеку для запросов, если она у вас уже есть.
Моё приложение обязательно должно быть написано на React, чтобы это использовать?Да — SWR это библиотека React Hooks, поэтому она создана для React-проектов, включая приложения на React Native.
Оно работает за пределами браузера?Да — кроме веб-приложений она поддерживает React Native для iOS и Android, а также SSR и SSG для сайтов с рендерингом на сервере, и работает с React Suspense.
За неё нужно платить?Нет — SWR это проект с открытым исходным кодом под лицензией MIT, пользоваться им можно бесплатно.
Данные сами обновляются?Да — компоненты постоянно получают обновления: SWR перепроверяет данные, когда окно снова в фокусе или восстанавливается сеть, а ещё поддерживается polling.
Оно умеет отправлять изменения или только читать?Она поддерживает локальную мутацию с оптимистичным интерфейсом — можно сразу обновить кешированные данные, пока реальный запрос выполняется в фоне.
Что будет, если запрос не пройдёт?Хук возвращает значение ошибки вместе с data и isLoading, а в SWR встроены умные повторные попытки, так что неудавшиеся запросы автоматически повторяются.
SWR привязан к Next.js или Vercel?Её создала команда Next.js из Vercel, а поддержка SSR и SSG хорошо подходит приложениям на Next.js — но это самостоятельная библиотека для любого React-проекта, включая React Native.
Which topics is it in?fetch, hook, ssg, cache, data, vercel, hooks, ssr, react-native, nextjs, react, npm
Creator
vercel
Size
8.1 MB
Stars
32.5K
Age
6y
Commits · 90 Days