Um momento
Aula 07
Cursos / React - Code Splitting para Iniciantes (Divisão de Código, Lazy Loading)
Consertando o Problema do Import Dinâmico - Aula de Code Splitting

Summary

# Resumo do Transcript

O transcript discute como implementar um painel dinâmico em um aplicativo React usando `setState` e `import` dinâmico, abordando o conceito de code splitting.

## Principais Pontos:

- **Configuração do Estado**:
  - Ao usar `setState`, é importante referenciar o painel como `painel.default` já que foi exportado como padrão.

- **Comportamento do Painel**:
  - Inicialmente, o painel está fechado (valor falso).
  - Um botão chama a função `onclick`, que utiliza um import dinâmico para carregar o painel.

- **Code Splitting**:
  - O `app pack` reconhece automaticamente o import dinâmico e gera um código split.
  - Ao clicar no botão, uma requisição HTTP é feita para baixar o código do painel, resultando em uma promessa.

- **Armazenamento de Componente**:
  - Após o carregamento, o componente é armazenado utilizando `setState` e o estado do painel é alterado para verdadeiro (aberto).

- **Resultados**:
  - O painel aparece após o clique, e o código relevante é extraído do `bundle.js`, sendo carregado a partir do `0.tunc.js`.

- **Tratamento de Erros**:
  - É importante considerar o que acontece se houver erro na conexão ou ao carregar o painel. Sugestões incluem o uso de um spinner enquanto o painel está sendo carregado.

- **Próximos Passos**:
  - O próximo tópico a ser abordado será o uso do `React Lazy` para facilitar a implementação do code splitting.

Video Transcript

Vamos aqui ver o seu... Não clica em port... E set state o painel... Está usando export default. Aqui no app, quando você setar o painel, tem que falar painel.default. Está? Esqueci disso, que foi exportado como default. Salvar... Tentar novamente... painel.default no set state. Está bom? Então ele apareceu o painel. Vamos ver aqui o que aconteceu. Está? Então a gente dá o render, aparece o app, mas tem um botão, mas não tem o painel, porque o painel não está aberto, o painel é aberto e tem valor falso. Quando você clica no botão, eu chamo onclick. O onclick vai dar um import dinâmico. Agora, quem é responsável para saber que você está querendo fazer code splitter? É o app pack. O app pack vai automaticamente saber, ó, tem um import dinâmico, então eu vou fazer code splitter aqui. Então quando ele você dá onclick, e parecia esse import, ele vai fazer o pídeo HTTP, pegar o pedaço do código que contém o painel, e esse cara retorna uma promessa. Lida com a promessa com o outro dentro. E ele retorna o próprio componente aqui. Aí eu dou o set state armazendo o componente no estado, com o mesmo nome, não se esqueça do default que eu exportei com default. Panel, painel, ponto default. E set painel aberto para toggle, né? Para set true. E funcionou. Olha aqui no Firefox, quando eu cliquei, apareceu o painel, e note que ele baixou esse 0.tunc.js, 1.22. Ilobytes, com o código do painel já aqui. Aí você pode ver o código do painel está aqui mesmo. Cadê ele me deixa? Então painel var painel, não sei o quê. Está aqui. Então o código foi extraído do bundle.js, só está no chunk 0.tunc.js, se você quiser conferir aqui com curl. Vou pegar aqui o bundle, se eu baixar de novo para ver se realmente saiu, foi extraído de lá. Dá o curl de novo. curl traço, ó. Deixa eu ir para o pasta temporária. Dá o curl, traço, ó, assim. Baixou o novo bundle. Deixa o atum do bundle para abrir. No novo bundle. Deixa eu procurar para o painel. Você nota que tem o import, aquele comentário que a gente tinha feito, que está dentro do app.js? Painel aberto painel no, mas não tem o código do painel próprio, né? Não tem. Então aquele code foi extraído para o 0.tunc.js. Então a gente fez o nosso primeiro code splitter usando o import dinâmico, tá? Isso é muito legal. Tá? Agora, isso é legal, mas o que acontece se der problema, se der erro de conexão? Aí você tem que lidar com o que acontece, ele não consegue baixar aquele pedaço. Tá? E o que acontece enquanto estiver carregando? Quer que você mostra um spinner? Certo? Então tem que levar em consideração essas coisas. Obviamente, você tem que ficar fazendo essas coisas e armazenar o componente no estado, não sei o quê, não sei o quê. Mas seria legal se a gente tivesse uma maneira mais talvez eficiente de fazer isso. Tenha uma maneira de usar o React Lazy, tá? E a gente vai falar do React Lazy. Tem aqui na página do code splitter, se quiser dar uma olhada. Explicação deles, se a gente falar do React Lazy na próxima aula, tá certo? Então até lá.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: