import { cachedFn } from "./actions";
import { Cc } from "./cc";
export default async function Home() {
const time = await cachedFn();
return (
<>
<p>hello world!</p>
<p>time: {time.toString()}</p>
<Cc />
</>
);
}
"use client";
import { useEffect } from "react";
import { cachedFn, revalidateFn } from "./actions";
export function Cc() {
useEffect(() => {
cachedFn().then((v) => console.log("time is", v.toString()));
});
return <button onClick={revalidateFn}>revalidate</button>;
}
"use server";
import { revalidateTag, unstable_cache } from "next/cache";
export const cachedFn = unstable_cache(async () => new Date(), ["cachedFn"], {
tags: ["cachedFn"],
});
export async function revalidateFn() {
revalidateTag("cachedFn");
}