Skip to content

Instantly share code, notes, and snippets.

@kazzkiq
Last active April 17, 2022 02:20
Show Gist options
  • Save kazzkiq/0f6cf6802601f421f42a587177f79875 to your computer and use it in GitHub Desktop.
Save kazzkiq/0f6cf6802601f421f42a587177f79875 to your computer and use it in GitHub Desktop.
Exemplo de rota SvelteKit que chama APIs já no backend e retorna a tela hidratada no front.
<script context="module">
// Ao invés de fazer essas chamadas para APIs dentro dos componentes (Componente1 e Componente2)
// ela já é feita aqui na rota, dentro desse bloco context="module", e retornada como props
// para a própria tela.
// E aí a tela é que passa os dados para os componentes via props.
export async function load ({ params, fetch }) {
const result = await (await fetch("ENDPOINT_DA_API_AQUI")).json();
return {
props: {
success: result.success,
data: result.payload,
}
};
}
</script>
<script>
import Componente1 from "$lib/components/Blabla1.svelte";
import Componente2 from "$lib/components/Blabla2.svelte";
// as props que são retornadas lá em cima precisam ser declaradas aqui
// com export let.
export let success;
export let data;
</script>
{#if !success}
<h2>Ops, parece que os dados necessários não foram carregados.</h2>
{:else}
<Componente1 propriedadeUm={data.propiedadeUm} propriedadeDois={data.propriedadeDois} />
<Componente2 propriedadeTres={data.propriedadeTres} propriedadeQuatro={data.propriedadeQuatro} />
{/if}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment