使用 SWR 通过 SSR 刷新预取数据是否是 nextJS 应用程序中的一个好习惯?
Is using SWR to refresh prefetched data with SSR a good practice in a nextJS app?
让我们假设以下页面:
export default ({ SSRtasks }) => {
const [ tasks, setTasks ] = useState(SSRtasks)
const { data: freshTasks, mutate } = useSwr('/api/tasks')
useEffect(() => freshTasks && setTasks(freshTasks), [ freshTasks ])
return (
<ul>{tasks.map(task => <li>{task}</li>)}</ul>
)
}
export const getServerSideProps = async ({ req, res }) => {
const SSRtasks = Task.find({ owner: id })
return { props: { SSRtasks } }
}
知道任务不断更新,
关于表演,这是正确的吗?
我找不到关于此的任何文档。 (或者至少,理解)
看这部分documentation你可以获取服务器端的数据,然后你可以将服务器端的数据传递给swr来设置初始状态
const { data, revalidate } = useSWR('/api/posts', fetcher, { initialData: props.posts })
当您获取新数据时,您可以调用 revalite,swr 将处理新数据。
查看此 了解更多详情
让我们假设以下页面:
export default ({ SSRtasks }) => {
const [ tasks, setTasks ] = useState(SSRtasks)
const { data: freshTasks, mutate } = useSwr('/api/tasks')
useEffect(() => freshTasks && setTasks(freshTasks), [ freshTasks ])
return (
<ul>{tasks.map(task => <li>{task}</li>)}</ul>
)
}
export const getServerSideProps = async ({ req, res }) => {
const SSRtasks = Task.find({ owner: id })
return { props: { SSRtasks } }
}
知道任务不断更新,
关于表演,这是正确的吗?
我找不到关于此的任何文档。 (或者至少,理解)
看这部分documentation你可以获取服务器端的数据,然后你可以将服务器端的数据传递给swr来设置初始状态
const { data, revalidate } = useSWR('/api/posts', fetcher, { initialData: props.posts })
当您获取新数据时,您可以调用 revalite,swr 将处理新数据。
查看此