Fallback de Carregamento

Visão Geral

Os fallbacks de carregamento são um conceito poderoso disponível para uso desde a versão 1.54.0, para lidar com o estado de carregamento de seções usando dados de APIs de terceiros. Eles permitem que você lide graciosamente com estados de carregamento e evite que toda a aplicação pare devido a alguma API de terceiros.

No deco, criar um fallback de carregamento é tão simples quanto exportar uma função de componente chamada LoadingFallback.

Os pré-requisitos para fazer com que seu componente funcione são ter as seguintes dependências em versões iguais ou superiores às listadas abaixo:

{
  "imports": {
    "deco/": "https://denopkg.com/deco-cx/deco@1.54.0/",
    "$fresh/": "https://denopkg.com/deco-cx/fresh@1.3.2/",
    "preact": "https://esm.sh/preact@10.16.0",
    "preact/": "https://esm.sh/preact@10.16.0/",
    "preact-render-to-string": "https://esm.sh/*preact-render-to-string@6.2.0",
    "@preact/signals": "https://esm.sh/*@preact/signals@1.1.3",
    "@preact/signals-core": "https://esm.sh/@preact/signals-core@1.3.0"
  }
}

Exemplo: Criando um Fallback de Carregamento

Para criar um fallback de carregamento, você pode seguir estes passos:

  • Escolha sua Seção selecionada (por exemplo, ProductShelf.tsx)
  • Exporte uma função chamada LoadingFallback.
// ProductShelf.tsx
export interface Props {
    myProp: string;
}

export function LoadingFallback() {
  // Renderize spinners, esqueletos e outros espaços reservados
  return (
    <div>
      <h2>carregando...</h2>
    </div>
  );
}

export default function ProductShelf(props: Props) {
    ...
}

Se ProductShelf usar dados provenientes de uma API de terceiros lenta, o componente LoadingFallback será renderizado em seu lugar. Se nenhum fallback de carregamento for definido, um fallback padrão será renderizado em seu lugar.