Предварительная выборка данных в указанном интервале - PullRequest
0 голосов
/ 30 апреля 2020

Я сейчас работаю над проектом со следующим. js. Я столкнулся с проблемой, что мне нужно предварительно выбирать данные на стороне сервера через определенный интервал c, например, один раз в день или каждые 3 часа.

Единственный способ предварительной выборки данных в следующей. js документации - один раз - во время сборки или при каждом запросе. С getStaticProps или getServerSideProps

Существует ли встроенное решение для интервальной предварительной выборки или есть пакет, который легко справляется с этим для меня?

1 Ответ

0 голосов
/ 04 мая 2020

Вы можете использовать библиотеку https://github.com/zeit/swr

Вот пример кода, который извлекает данные каждые 3 секунды.

import React from "react"
import useSWR, { SWRConfig } from 'swr'

function Dashboard () {
    const { data: events } = useSWR('/api/events')
    const { data: projects } = useSWR('/api/projects')
    const { data: user } = useSWR('/api/users', { refreshInterval: 0 }) // don't refresh
     return(
        <div>
          {/*Sample rendering */}
          {events && events.length > 0 ? (
            <div>
                  Show the event list or a chart.
              </div>
          ): (
            <div>No events</div>
          )}
      </div>
     )
}

export default function App () {
    return (
        <SWRConfig
            value={{
                refreshInterval: 3000,
                fetcher: (url, args) => fetch(url, args).then(res => res.json())
            }}
        >
            <Dashboard />
        </SWRConfig>
    )
}

На заметку: Возможно, вам следует внедрить что-то вроде Pusher JS или аналогично pu sh данных в браузер. У них есть серверные библиотеки для pu sh данных.

...