Skip to content

Commit 5da5f86

Browse files
committed
feat(section): suspense
1 parent e923afd commit 5da5f86

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Suspense
2+
3+
Suspense é um recurso utilizado no React.js, sendo um recurso especial assim como o `transition` e `transition-group`, seu objetivo é ser um watcher do componente e ter as informações de carregamento. Por mais que podemos monitorar a criação de um componente pelo retorno do setup() sem a necessidade de recursos adicionais, o Suspense vem para utilizar isso de uma forma elegante e que facilite para os desenvolvedores.
4+
5+
Até o momento(17/12/2020), o recurso está em fase beta e não é recomendável para projetos finais.
6+
7+
## Utilização
8+
9+
```html
10+
<template>
11+
<Suspense>
12+
<template #default>
13+
<ComponenteEsperado>
14+
</template>
15+
<template #fallback>
16+
<ComponenteCarregando>
17+
</template>
18+
</Suspense>
19+
</template>
20+
```
21+
22+
* De uma forma simples, o #default é o componente que será escutado e esperado em sua construção(finalização do hook onMounted), enquanto o #fallback é o componente que será carregado enquanto o `ComponenteEsperado` está sendo criado.
23+
24+
* Se o componente esperado executar um erro, podemos capturar e tratar este erro:
25+
26+
```html
27+
<script>
28+
import { ref, onErrorCaptured } from 'vue';
29+
30+
setup () {
31+
const error = ref(null);
32+
onErrorCaptured(e => {
33+
error.value = e
34+
return true
35+
})};
36+
return { error }
37+
</script>
38+
```
39+
40+
* Lembrando que este erro retornado é genérico, tendo a necessidade de tratar o erro de alguma forma. Como a promise irá ficar infinitamente carregando, recomendamos utilizar o v-if/v-else com um erroHandler para conseguir exibir o erro sem que a promise continue a ser carregada.
41+
42+
[Próxima Seção](./5%20-%20JSX.md)

0 commit comments

Comments
 (0)