Executando verificação de segurança...
1

Alguém consegue resolver esse pequeno problema com NextJS ?

Pessoal, criei uma pequena app em Nextjs para ilustrar o problema:

https://github.com/danielschmitz/clock-router

https://clock-router.vercel.app/

Esse projeto tem 2 paginas, e em cada uma delas eu pego a hora "Now" e exibo na tela.

Quando ela carrega a primeira vez, funciona ok. MAs quando eu navego entre a primeira página e a segunda página, e fico indo e voltando, há algum tipo de cache que faz com que a hora não seja exibida corretamente.

Minha primeira pagina é assim:

import Link from "next/link";

export const dynamic = 'force-dynamic'

export default function Home() {
  const now = new Date();
  return (
      <main className="m-10">
        
        Hello World! <br/><br/> its {now.toDateString()} {now.toTimeString()}

        <br/><br/><br/>

        <Link href="/page2">Page 2</Link>

      
      </main>
  );
}

Veja que tentei usar export const dynamic = 'force-dynamic' mas sem sucesso.

A minha segunda página é assim:

import Link from "next/link";

export const dynamic = 'force-dynamic'


async function getData() {
  const now = new Date();
  return now;
}

export default async function Home() {
  const now = await getData();
  return (
      <main className="m-10">
        
        Page 2! <br/><br/> its {now.toDateString()} {now.toTimeString()}

        <br/><br/><br/>

        <Link href="/">Page 1</Link>
      
      </main>
  );
}

Tentei usar getData mas sem sucesso também.

Alguma dica? De como fazer o "Now" não ser cacheado ? e cada vez que navega entre os links, a data correta seja impressa?

Carregando publicação patrocinada...
2
1

Isso, o que ocorre é que mesmo que a página seja SSR ali, uma vez que ela vai para o front ele cachea ela, as vezes ele faz prefetch antes mesmo de vc clicar e pegar o horarioi ainda antes...

Mas show que deu certo, nestes cassos tem que tomar cuidado com isso e lancar mao dos client components.

Shooow!!

1

Se o fato for recorrente, é melhor (mais rapido) que seja feito um client component do que inativar o cache do SSR.

E de quebra o relógio consegue ser atualizado de tempos em tempos se assim fizer sentido

1
2
0
1
1
0
1
1