AU COMMENCEMENT, ÉTAIT LE STATIQUE 💎 Des chiers HTML purs servis par un serveur 🥇 Première page créée sur le Web
fi
⚡ Simple. Léger. Scalable. Rapide
Slide 6
PUIS, LE SERVER RENDERING FÛT ROI 👑 🐘 PHP, Python, Ruby 💻 L’HTML est généré coté serveur 💥 Dynamisme
Slide 7
OL’ MYSPACE
Slide 8
AUJOURD’HUI MARQUE LE RÈGNE DES SINGLE PAGE APPLICATIONS (SPA) ⚙ Angular, React, Vue… 📺 L’HTML est généré coté client 🖱Interactivité
Slide 9
LES SPA ONT PERMIS LA CRÉATION DE TRÈS BONNES APPLICATIONS
Slide 10
MAIS ONT CONSIDÉRABLEMENT RALENTI L’EXPÉRIENCE UTILISATEUR
Slide 11
PEUT-ON RÉCONCILIER L’INTERACTIVITÉ DES SPA D’AUJOURD’HUI AVEC LA PERFORMANCE DES SITES STATIQUES DES ANNÉES 90”?
Slide 12
MEET GATSBYJS 1⃣ Vous codez en React
2⃣ L’application est compilée en HTML (site statique) au moment du build
Slide 13
REQUEST FLOW Can I have the homepage please?
yeah, take this HTML le, a snapshot of the page I made during the build
sweet! i can see the content rst…
fi
fi
React environment is loaded client-side
and now click around!
Following navigation is managed by React
Slide 14
EST-CE QUE GATSBY TIENT SES PROMESSES ?
Slide 15
Slide 16
NOUS AVONS VOULUS RÉUNIR LA COMMUNAUTÉ JAMSTACK À PARIS
Slide 17
9 MEETUPS ONT EU LIEU, 500 MEMBRES NOUS ONT REJOINT
Slide 18
NOUS VOULIONS UN SITE RAPIDE POUR COMMUNIQUER
Slide 19
NOS BESOINS 📅 A cher les meetups depuis l’API meetup.com 📸 Gallerie de photos
ffi
⚡ Performant
Slide 20
📅 AFFICHER LES MEETUPS DEPUIS L’API DE MEETUP.COM
Slide 21
FLOW DE DONNÉES D’UN SITE GATSBY 1⃣ Récupérer la donnée depuis une source 2⃣ Requêter la donnée avec GraphQL
3⃣ Injecter la donnée aux composants React
Slide 22
1⃣ RÉCUPERER LA DONNÉE DEPUIS UNE SOURCE AVEC LES SOURCE PLUGINS
Slide 23
LES SOURCE PLUGINS SONT DES PACKAGES NPM
gatsby-con g.js
fi
module.exports = ({ … plugins: [ { resolve: gatsby-source-meetup, options: { key: process.env.MEETUP_API_KEY, groupUrlName: JAMstack-paris, status: “upcoming,past”, desc: “true”, page: 10 } } ] });
Slide 24
LA DONNÉE EST RÉCUPÉRÉE ET MAPPÉE AU MOMENT DU BUILD
RÉCUPÈRE LA DONNÉE SUR L’API MEETUP
Slide 25
2⃣ REQUÊTER LA DONNÉE AVEC GRAPHQL 📢 Language de requête 💙 Créé par Facebook 🥢 Requête seulement ce dont vous avez besoin
Slide 26
Slide 27
LA DONNÉE PEUT ÊTRE REQUÊTÉE DANS LE CODE Homepage.js
const data = useStaticQuery( graphqlquery { meetupGroup { events { id name description local_date venue { name address_1 city } link status } name } } );
☑ CHECKLIST POUR TRAVAILLER AVEC DE LA DONNÉE 1⃣ Chercher, installer et con gurer le plugin source ⚙ 2⃣ Forger sa requête GraphQL avec GraphiQL 🕵
fi
3⃣ Injecter la donnée à vos composants React 💉
Slide 32
⚡ PERFORMANCE
Slide 33
📸 TRANSITION FLUIDE
Slide 34
GATSBY DÉCOUPE VOTRE CODE PAR PAGE
Homepage JS
Gallery JS
GATSBY-IMAGE N’EST CHARGÉE QUE SUR LA PAGE GALLERY
LE TEMPS DE BUILD EST CORRELÉ À LA TAILLE DU CONTENU “builds are slow (about 1.5-2 times slower than my PC) and […] 15 minutes is sometimes easy to reach”
Source: https://oioannou.com/build-on-circleci-deploy-netlify
Slide 40
LES ERREURS PEUVENT ÊTRE MYSTÉRIEUSES
Slide 41
EN RÉSUMÉ 😍 Super bonne expérience 📓 Très bonne documentation 👫 La community est positive et aidante ❤ L’approche hybride dynamique et statique 🏰 Toujours en recherche d’un projet professionnel pour lequel utiliser Gatsby
Slide 42
SI VOUS VOULEZ DÉCOUVRIR GATSBY 📒 https://www.gatsbyjs.org/docs/ 📹 https://egghead.io/browse/frameworks/gatsby https://github.com/gatsbyjs/gatsby