@ErwanEL Web Dev
@ErwanEL Web Dev
Création dynamique de page avec GatsbyJs
@ErwanEL Web Dev
Gatsby Js vous permet de créer dynamiquement des pages à partir de template et de données pouvant provenir de différentes sources.
> gatsby new gatsby-starter-hello-world https://github.com/gatsbyjs/gatsby-starter-hello-world
gatsby-node.js
à la racine du dossier.gatsby-node.js
, ajoutez l'export pour le createPagesexports.createPages = ({ actions }) => {
// ...
}
exports.createPages = ({ actions }) => {
const { createPage } = actions
// ajoutez ici les données que vous voulez
const dogData = [
{
name: "Fido",
breed: "Sheltie",
},
{
name: "Sparky",
breed: "Corgi",
},
]
}
exports.createPages = ({ actions }) => {
const { createPage } = actions
const dogData = [
{
name: "Fido",
breed: "Sheltie",
},
{
name: "Sparky",
breed: "Corgi",
},
]
dogData.forEach(dog => {
createPage({
path: `/${dog.name}`,
component: require.resolve(`./src/templates/dog-template.js`),
context: { dog },
})
})
}
Ajoutez le fichier dans un dossier templates
src/templates/dog-template.js
import React from "react"
export default function DogTemplate({ pageContext: { dog } }) {
return (
<section>
{dog.name} - {dog.breed}
</section>
)
}
> gatsby develop