Ciclo de vida e fundamentos
LauraBeatris
LauraBeatris
Apaixonada por React e todo o seu ecossistema, como frameworks e as comunidades envolvidas no desenvolvimento da biblioteca.
Kyle Mathews - Criador do Gatsby
- Criar uma aplicação web que utilizasse React e Webpack, se baseando em dois pontos principais:
- Facilidade para utilização e manutenção
- Performance no processo de deploy
- Foco em page speed das aplicações
- Speed Index
- Time to Interactive
@kylemathews
A dinâmica de um gerador de site estaticos
Ecossistema rico em tratamento das diversas fontes de dados (CMS, banco de dados, APIs, Filesystem)
A dinâmica de um gerador de site estaticos
Ecossistema rico em tratamento das diversas fontes de dados (CMS, banco de dados, APIs, Filesystem)
Templates baseadas em React. Componentes podem executar GraphQL queries para fetch de dados.
A dinâmica de um gerador de site estaticos
Ecossistema rico em tratamento das diversas fontes de dados (CMS, banco de dados, APIs, Filesystem)
Templates baseadas em React. Componentes podem executar GraphQL queries para fetch de dados.
Gera a aplicação estática
Etapas do ciclo de vida
1. Bootstrap
- Validação da configuração (gatsby-config.js)
- Carregamento de plugins
- Criação das páginas
- Construção dos schemas com base nas fontes de dados, via a API do GraphQL
Etapas do ciclo de vida
2. Build
- Semelhante a etapa de bootstrap
- Optimizações para produção
- Output dos arquivos estáticos
3. Browser
- Depois que os arquivos estáticos são gerados e a aplicação esta em produção, o gatsby e seu ciclo de vida comecam a viver no browser
Etapas do ciclo de vida
Arquivos de hooks do lifecycle
Assim como o React possui seus métodos para ciclo de vida, o Gatsby expõe alguns lifecycle hooks a partir de arquivos específicos, como por exemplo:
- gatsby-node.js
- gatsby-browser.js
- gatsby-ssr.js
- gatsby-config.js
gatsby-config.js
- Informações sobre o site como metadata, plugins e polyfills
- Possui a maior base da aplicação, principalmente em relação aos plugins
- Source plugins, image plugins, offline support, styling options, e site metadata.
module.exports = {
siteMetadata: {
title: 'Agriculture Holding',
author: 'Laura Beatris',
},
plugins: [
'gatsby-plugin-sass',
{
resolve: 'gatsby-plugin-postcss',
options: {
postCssPlugins: [
require('tailwindcss'),
require('postcss-import'),
require('autoprefixer'),
],
},
},
]
gatsby-node.js
- O Gatsby roda um processo de Node tanto na etapa de bootstrap quanto na etapa de build.
- Durante todos esses processos, são configurados plugins, data schemas, criação de páginas, etc.
- O gatsby-node.js e chamado durantes essas etapas e permite que nós tenhamos acesso a varias APIs internas para criação de página e lidar com dados.
Hooks:
- createPages
- onCreateBabelConfig
- onCreateWebpackConfig
- onPostBuild
gatsby-node.js - onCreateNode
gatsby-node.js - createPages
gatsby-browser.js
- Apesar de ser um site estático, depois do seu primeiro carregando ele se torna dinâmico a partir de alguns hooks que podem ser utilizados nesse arquivo.
- Lidar com tracking de rotas, carregando e posição de scroll.
- Vários hooks para interagir com o client.
Hooks:
- onClientEntry
-
onRouteUpdate
-
onServiceWorkerInstalled
- registerServiceWorker
- shouldUpdateScroll
gatsby-browser.js
gatsby-ssr.js
- O Gatsby possui SSR, gerando todas as paginas durante o processo de build.
- Utilizado para injetar HTML, CSS ou estados do Redux enquanto os componentes estao sendo renderizados.
- Utilizar scripts de third party libraries, como analytics ou pixels - onRenderBody hook
- onPreRenderHTML
- onRenderBody
- replaceRenderer
Hooks:
gatsby-ssr.js - onRenderBoy
gatsby-ssr.js - wrapRootElement
O React é o core do Gatsby, por isso eles compartilham algumas APIs parecidas, como o lifecycle. Esse lifecycle tão poderoso permite com que nós tenhamos acesso a momentos chaves da aplicação, proporcinando uma experiência excelente de desenvolvimento.
GatsbyJS - Lifecycle
By laurabeatriserafim
GatsbyJS - Lifecycle
- 279