(Dúvida) Qual a melhor forma de persistir um dado em Next js?
Olá, atualmente me encontro realizando um projeto em Next js, mas me surgiu algumas dúvidas, de qual seria a melhor forma de solucionar esse problema.
O Problema é o seguinte:
Tenho algumas telas, onde cada tela o usuárío pode escolher uma opção. A medida que o usuário vai selecionando as opções vai filtrando para mostrar as opções da outra tela. E só no final de preencher todas as opções será finalmente salvo no banco. Qual seria a melhor forma de persistir esses dados de uma tela para outra? LocalStorage, context ou Redux(Não tenho experiência com Redux).
Obs: são poucas telas e não faz sentido para o meu caso usar os params da url
Desde já agradeço!
são poucas telas e não faz sentido para o meu caso usar os params da url
acredito que a forma mais simples eh usar URL Params, recebe o input do usuario (com form por exemplo), valida, salva como parametro na URL e redireciona para proxima pagina, o "ultimo" component ira fazer o parse e enviar pro servidor. tudo depende ta tua necessidade, dificil dizer com pouco contexto sobre o projeto mas tenha em mente que a modelo mental do Next e server components eh gerenciar o estado do lado do servidor, fazendo libs para controle de estado um pouco antipatern.
Recomendo ler a fundo a documentacao do Next e Remix.
Acredito que se você usar o localStorage, não teria nenhum problema. Uma coisa só é que no NEXT, pra nao dar erro, voce precisa pegar os dados do localstorage dentro do hook useEffect e verificando o tipo de window.
Ex:
useEffect(() => {
if(typeof window !== "undefined") {
const dataFromLocalStorage = window.localStorage.getItem("<nome>");
setData(dataFromLocalStorage);
}
}, []);
sem essa verificação, o next vai lançar um error afirmando sempre que window é undefined, mesmo definindo no topo do arquivo "use client", se você estiver usando as versões 13.x pra cima.