Introducción a Gatsby

1

¿Por qué Gatsby? Seguridad y Velocidad

2

¿Qué es Gatsby?

3

Diferencias entre SPA, SSR y Gatsby

Preparando el entorno

4

Requisitos previos y herramientas de desarrollo

5

Gatsby y Gatsby CLI y Starters

6

Configuración de ESLint

Fundamentos de Gatsby

7

Presentación y Estructura de Archivos de nuestro proyecto: Platziswag

8

Ecosistema de plugins

9

Usando React para manejar la parte visual e interactiva de nuestra aplicación

Creando la vista con React

10

Router en Gatsby y Componente Link

11

Layout en Gatsby

Graphql en Gatsby

12

¿Cómo funciona GraphQL en Gatsby?

13

Accediendo a nuestros datos en Gatsby desde GraphQL

14

Queries, Edges (conexiones) y Nodos en Gatsby

15

Consultas en GraphQL desde React

Usando plugins en Gatsby

16

Instalación y configuración de plugins

17

Imágenes como fuente de datos

18

Plugins de transformación

19

Estilizando nuestros componentes con styled-components

20

Estilos Globales con styled-components

Stripe checkout

21

Introducción a la API de Stripe Checkout

22

Agregando productos a nuestra tienda en línea

23

Productos en React

Generando páginas programáticamente

24

Creando páginas en función de los datos

25

Manejo de Gatsby Templates

26

Terminando la Vista de Detalle de los Productos

27

StaticQuery vs. useStaticQuery

28

Construyendo el Carrito de Compras: useContext

29

Construyendo el Carrito de Compras: Vista

30

Construyendo el Carrito de Compras: Agregar productos al carrito

31

Comprando productos

Gatsby a producción

32

Gatsby build para compilar nuestro proyecto

33

Deploy a Netlify

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Imágenes como fuente de datos

17/33
Recursos

Aportes 4

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

se puede hacer un query con props como variables? En este caso pasaría el nombre de la imagen y dentro del componente hace el query para buscarla

Si están ocupando gatsby-plugin-image y tienen imagenes dinamicas es decir las traen desde un CMS o cualquier otra fuente de datos se ocupa el componente GatsbyImage junto a getImage no soporta svg

https://www.gatsbyjs.com/plugins/gatsby-plugin-image/#dynamic-images

Imágenes como fuente de datos

Working with Images in Gatsby

Si usamos GraphQL con este query:

{
  allFile{
    edges{
      node{
        id
        relativePath
        prettySize
        publicURL
      }
    }
  }
}

Obtendremos este resultado:

{
  "data": {
    "allFile": {
      "edges": [
        {
          "node": {
            "id": "c50f901b-53a0-5f6b-8f04-03f9f33226df",
            "relativePath": "Logo.png",
            "prettySize": "6.32 kB",
            "publicURL": "/static/3a035444978974a51ae8287cb2ff29f3/Logo.png"
          }
        },
        {
          "node": {
            "id": "d4447f6e-526b-52a1-859c-43b2e998fc6f",
            "relativePath": "cart.png",
            "prettySize": "515 B",
            "publicURL": "/static/92420c0eceec769bc40ef134a2fcfdcf/cart.png"
          }
        },
        {
          "node": {
            "id": "056b5e8a-6037-5d04-ab2d-66cc9398b29f",
            "relativePath": "gatsby-icon.png",
            "prettySize": "21.2 kB",
            "publicURL": "/static/4a9773549091c227cd2eb82ccd9c5e3a/gatsby-icon.png"
          }
        },
        {
          "node": {
            "id": "0a25e8ac-9c62-5144-8f94-f803206f686e",
            "relativePath": "mug.png",
            "prettySize": "56.5 kB",
            "publicURL": "/static/dee1beb3e04c46ffe81e08f73e3e4633/mug.png"
          }
        },
        {
          "node": {
            "id": "bea94ad1-92a7-5ab0-b1fb-ef0f0c80114e",
            "relativePath": "stickers1.png",
            "prettySize": "44.8 kB",
            "publicURL": "/static/3ed3194a818a11c32a80aa72b0ebe480/stickers1.png"
          }
        },
        {
          "node": {
            "id": "f9ccd07b-d131-54a7-90da-5b269c28e511",
            "relativePath": "camiseta.png",
            "prettySize": "97.1 kB",
            "publicURL": "/static/d442a8b550c7b907319f1107980f3c59/camiseta.png"
          }
        },
        {
          "node": {
            "id": "6fc38d8c-5d39-5088-8f4e-dccf699c3e43",
            "relativePath": "hoodie.png",
            "prettySize": "83.8 kB",
            "publicURL": "/static/49b11cd38984eeb59ed83e35872bedcb/hoodie.png"
          }
        },
        {
          "node": {
            "id": "6fc3aabd-b0db-5725-8b0c-8cf14b3a4dd1",
            "relativePath": "icon.png",
            "prettySize": "126 kB",
            "publicURL": "/static/fc299bb0dde2432db7f768171b09d328/icon.png"
          }
        },
        {
          "node": {
            "id": "2e44d622-9eec-5091-b26a-5b358689aa0f",
            "relativePath": "pin.png",
            "prettySize": "71.1 kB",
            "publicURL": "/static/43c2d2ed4ca064ce21c4b53ff37fb57a/pin.png"
          }
        },
        {
          "node": {
            "id": "07583d9f-5c0b-5ab2-97dd-ddd3b7fa6bb6",
            "relativePath": "stickers2.png",
            "prettySize": "110 kB",
            "publicURL": "/static/25f529332fa038fc71b6c83fd9d7a4cb/stickers2.png"
          }
        },
        {
          "node": {
            "id": "993b466a-67ad-5dd4-a9c9-023fe6e0ac6a",
            "relativePath": "gatsby-astronaut.png",
            "prettySize": "167 kB",
            "publicURL": "/static/6d91c86c0fde632ba4cd01062fd9ccfa/gatsby-astronaut.png"
          }
        }
      ]
    }
  },
  "extensions": {}
}