SlideShare uma empresa Scribd logo
1 de 9
Code Splitting
no React
Empacotamento de Arquivos:
O que é? Ferramentas?
● A maioria das aplicações que utilizam a biblioteca React terão seus
arquivos empacotados utilizando ferramentas como, por exemplo:
Webpack, Rollup, Browserify.
Como funciona o empacotamento (Bundling)?
● O processo de empacotamento é o processo onde todos arquivos
importados/usados no projetos são unidos em um único arquivo.
Este chamado de pacote (Bundle).
● Este pacote carrega a aplicação inteira de uma vez.
Code Splitting: O que é? Quais
os benefícios de usar?
● O Code Slitting se trata nada mais do que dividir o
código.
● Dividir o código favorece drasticamente o desempenho
da sua aplicação, pois, dessa forma, te permite carregar
na aplicação somente o necessário ao usuário.
Code Splitting: Implementação
Basicamente, seria transformar seu único arquivo .js em vários outros
pequenos arquivos .js, divididos geralmente por componentes.
main.js
home.js
a.js
b.js
c.js
● Lazy Loading (carregamento preguiçoso).
Code Splitting: Implementação
● Importações: não podemos mais importá-los diretamente através dos
modules (módulos).
● Devemos utilizar a função lazy que o React nos oferece, dessa forma,
devemos importar ela.
import React, { lazy } from 'react'
const ComponentA = lazy(() => import('../components/ComponentA'))
● Nossos componentes que desestruturamos anteriormente devem ser
variáveis que receberão o componente através da função lazy
Code Splitting:
const HomeComponent = lazy(() =>
import('../components/HomeComponent'))
const ComponentA = lazy(() => import('../components/ComponentA'))
const ComponentB = lazy(() => import('../components/ComponentB'))
const ComponentC = lazy(() => import('../components/ComponentC'))
Code Splitting: Componente Suspense
import React, { Suspense, lazy } from 'react'
const Routes = () => (
<Router history={ history }>
<Switch>
<Suspense fallback={ <h1>Rendering...</h1> }>
<Route component={ HomeComponent } exact path="/"/>
<Route component={ AComponent } exact path="/a"/>
<Route component={ BComponent } exact path="/b"/>
<Route component={ CComponent } exact path="/c"/>
</Suspense>
</Switch>
</Router>
)
Code Splitting: Componente Suspense
Porque foi necessário o uso do Suspense?
● Ele foi criado pensando em melhorar a usabilidade de nossa
aplicação.
● Enquanto uma request está sendo feita ou um componente não
está pronto para ser renderizado, nós mostramos um Spinner para
o usuário.
● Dessa maneira conseguimos dizer para ele que a aplicação está
processando.
● O suspense através do fallback recebe um componente que será
mostrado enquanto está sendo feita a renderização do
componente.
Code Splitting
Obrigada!!

Mais conteúdo relacionado

Semelhante a Code splitting no react

Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoIonic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoAlamo Saravali
 
Testes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosTestes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosDiego Santos
 
Vuejs
VuejsVuejs
Vuejsceife
 
Aplicações com Tecnologias Web
Aplicações com Tecnologias WebAplicações com Tecnologias Web
Aplicações com Tecnologias WebRildo Pragana
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo realEvandro Silvestre
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsDenis L Presciliano
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsDenis L Presciliano
 
Workshop React Hooks
Workshop React HooksWorkshop React Hooks
Workshop React HooksDan Vitoriano
 
PDC - Engenharia - Plataforma Microsoft .NET
PDC - Engenharia - Plataforma Microsoft .NETPDC - Engenharia - Plataforma Microsoft .NET
PDC - Engenharia - Plataforma Microsoft .NETslides_teltools
 
Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)
Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)
Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)Felipe Silveira
 
AngularJS Components - Semana da Informática 2016
AngularJS Components - Semana da Informática 2016AngularJS Components - Semana da Informática 2016
AngularJS Components - Semana da Informática 2016Diego Melo
 
SharePoint Deployment
SharePoint DeploymentSharePoint Deployment
SharePoint DeploymentAndré Vala
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntDenis L Presciliano
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntDenis L Presciliano
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para AndroidJorge Cardoso
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkPablo Dall'Oglio
 
Dockerizando aplicações em uma Fintech
Dockerizando aplicações em uma FintechDockerizando aplicações em uma Fintech
Dockerizando aplicações em uma FintechRafael Gomes
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlManuel Lemos
 

Semelhante a Code splitting no react (20)

Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoIonic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
 
Kotlin first
Kotlin firstKotlin first
Kotlin first
 
Testes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosTestes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizados
 
Vuejs
VuejsVuejs
Vuejs
 
Aplicações com Tecnologias Web
Aplicações com Tecnologias WebAplicações com Tecnologias Web
Aplicações com Tecnologias Web
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e applets
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e applets
 
Workshop React Hooks
Workshop React HooksWorkshop React Hooks
Workshop React Hooks
 
PDC - Engenharia - Plataforma Microsoft .NET
PDC - Engenharia - Plataforma Microsoft .NETPDC - Engenharia - Plataforma Microsoft .NET
PDC - Engenharia - Plataforma Microsoft .NET
 
Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)
Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)
Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)
 
AngularJS Components - Semana da Informática 2016
AngularJS Components - Semana da Informática 2016AngularJS Components - Semana da Informática 2016
AngularJS Components - Semana da Informática 2016
 
SharePoint Deployment
SharePoint DeploymentSharePoint Deployment
SharePoint Deployment
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
Dockerizando aplicações em uma Fintech
Dockerizando aplicações em uma FintechDockerizando aplicações em uma Fintech
Dockerizando aplicações em uma Fintech
 
Java 08
Java 08Java 08
Java 08
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControl
 

Code splitting no react

  • 2. Empacotamento de Arquivos: O que é? Ferramentas? ● A maioria das aplicações que utilizam a biblioteca React terão seus arquivos empacotados utilizando ferramentas como, por exemplo: Webpack, Rollup, Browserify. Como funciona o empacotamento (Bundling)? ● O processo de empacotamento é o processo onde todos arquivos importados/usados no projetos são unidos em um único arquivo. Este chamado de pacote (Bundle). ● Este pacote carrega a aplicação inteira de uma vez.
  • 3. Code Splitting: O que é? Quais os benefícios de usar? ● O Code Slitting se trata nada mais do que dividir o código. ● Dividir o código favorece drasticamente o desempenho da sua aplicação, pois, dessa forma, te permite carregar na aplicação somente o necessário ao usuário.
  • 4. Code Splitting: Implementação Basicamente, seria transformar seu único arquivo .js em vários outros pequenos arquivos .js, divididos geralmente por componentes. main.js home.js a.js b.js c.js ● Lazy Loading (carregamento preguiçoso).
  • 5. Code Splitting: Implementação ● Importações: não podemos mais importá-los diretamente através dos modules (módulos). ● Devemos utilizar a função lazy que o React nos oferece, dessa forma, devemos importar ela. import React, { lazy } from 'react' const ComponentA = lazy(() => import('../components/ComponentA')) ● Nossos componentes que desestruturamos anteriormente devem ser variáveis que receberão o componente através da função lazy
  • 6. Code Splitting: const HomeComponent = lazy(() => import('../components/HomeComponent')) const ComponentA = lazy(() => import('../components/ComponentA')) const ComponentB = lazy(() => import('../components/ComponentB')) const ComponentC = lazy(() => import('../components/ComponentC'))
  • 7. Code Splitting: Componente Suspense import React, { Suspense, lazy } from 'react' const Routes = () => ( <Router history={ history }> <Switch> <Suspense fallback={ <h1>Rendering...</h1> }> <Route component={ HomeComponent } exact path="/"/> <Route component={ AComponent } exact path="/a"/> <Route component={ BComponent } exact path="/b"/> <Route component={ CComponent } exact path="/c"/> </Suspense> </Switch> </Router> )
  • 8. Code Splitting: Componente Suspense Porque foi necessário o uso do Suspense? ● Ele foi criado pensando em melhorar a usabilidade de nossa aplicação. ● Enquanto uma request está sendo feita ou um componente não está pronto para ser renderizado, nós mostramos um Spinner para o usuário. ● Dessa maneira conseguimos dizer para ele que a aplicação está processando. ● O suspense através do fallback recebe um componente que será mostrado enquanto está sendo feita a renderização do componente.