npm install -g gatsby-cli
gatsby new my-gatsby-site
cd my-gatsby-site
gatsby develop
gatsby build
gatsby serve
/src
: Kaynak kodu
/pages
: Sayfalar için React bileşenleri/components
: Yeniden kullanılabilir React bileşenleri/templates
: Programatik olarak oluşturulan sayfalar için şablonlar/styles
: CSS dosyaları/static
: Public klasörüne kopyalanacak statik varlıklar/gatsby-config.js
: Gatsby yapılandırma dosyası/gatsby-node.js
: Gatsby Node.js API'leri/gatsby-browser.js
: Gatsby tarayıcı API'leri/gatsby-ssr.js
: Gatsby sunucu taraflı işleme API'leri// src/pages/hakkimizda.js
import React from 'react'
const HakkimizdaSayfasi = () => (
<div>
<h1>Hakkımızda</h1>
<p>Bu hakkımızda sayfasıdır</p>
</div>
)
export default HakkimizdaSayfasi
import { Link } from 'gatsby'
const Navigasyon = () => (
<nav>
<Link to="/">Ana Sayfa</Link>
<Link to="/hakkimizda">Hakkımızda</Link>
</nav>
)
// gatsby-node.js
exports.createPages = async ({ actions }) => {
const { createPage } = actions
createPage({
path: "/dsg-kullanimi",
component: path.resolve(`src/templates/dsg-kullanimi.js`),
context: {},
defer: true,
})
}
import React from 'react'
const Baslik = ({ baslik }) => (
<header>
<h1>{baslik}</h1>
</header>
)
export default Baslik
import React, { Component } from 'react'
class Sayac extends Component {
state = { sayi: 0 }
artir = () => {
this.setState(oncekiDurum => ({ sayi: oncekiDurum.sayi + 1 }))
}
render() {
return (
<div>
<p>Sayı: {this.state.sayi}</p>
<button onClick={this.artir}>Artır</button>
</div>
)
}
}
export default Sayac
import React from 'react'
import { graphql } from 'gatsby'
const AnaSayfa = ({ data }) => (
<div>
<h1>{data.site.siteMetadata.title}</h1>
</div>
)
export const query = graphql`
query AnaSayfaSorgusu {
site {
siteMetadata {
title
}
}
}
`
export default AnaSayfa
import React from 'react'
import { useStaticQuery, graphql } from 'gatsby'
const SiteBilgisi = () => {
const data = useStaticQuery(graphql`
query SiteBilgisiSorgusu {
site {
siteMetadata {
title
description
}
}
}
`)
return (
<div>
<h1>{data.site.siteMetadata.title}</h1>
<p>{data.site.siteMetadata.description}</p>
</div>
)
}
export default SiteBilgisi
import React from 'react'
import { graphql, useStaticQuery } from 'gatsby'
import Img from 'gatsby-image'
const Gorsel = () => {
const data = useStaticQuery(graphql`
query {
file(relativePath: { eq: "ornek.jpg" }) {
childImageSharp {
fluid(maxWidth: 800) {
...GatsbyImageSharpFluid
}
}
}
}
`)
return <Img fluid={data.file.childImageSharp.fluid} alt="Örnek" />
}
export default Gorsel
import React from 'react'
const StatikGorsel = () => (
<img src="/logo.png" alt="Logo" />
)
export default StatikGorsel
import React from 'react'
import styles from './buton.module.css'
const Buton = ({ children }) => (
<button className={styles.buton}>{children}</button>
)
export default Buton
import React from 'react'
import styled from 'styled-components'
const StilliButon = styled.button`
background-color: #0077b5;
color: white;
padding: 10px 20px;
border: none;
border-radius: 4px;
`
const Buton = ({ children }) => (
<StilliButon>{children}</StilliButon>
)
export default Buton
// gatsby-config.js
module.exports = {
plugins: [
'gatsby-plugin-react-helmet',
{
resolve: `gatsby-source-filesystem`,
options: {
name: `images`,
path: `${__dirname}/src/images`,
},
},
'gatsby-transformer-sharp',
'gatsby-plugin-sharp',
],
}
// gatsby-node.js
const fetch = require('node-fetch')
exports.sourceNodes = async ({ actions, createNodeId, createContentDigest }) => {
const { createNode } = actions
const response = await fetch('https://api.example.com/data')
const data = await response.json()
data.forEach(item => {
const node = {
...item,
id: createNodeId(`ornek-${item.id}`),
internal: {
type: 'OrnekOge',
contentDigest: createContentDigest(item),
},
}
createNode(node)
})
}
import React, { useState, useEffect } from 'react'
const CalismaZamaniVerisi = () => {
const [data, setData] = useState(null)
useEffect(() => {
const veriCek = async () => {
const response = await fetch('https://api.example.com/data')
const sonuc = await response.json()
setData(sonuc)
}
veriCek()
}, [])
if (!data) return <div>Yükleniyor...</div>
return (
<div>
<h1>Çalışma Zamanı Verisi</h1>
<pre>{JSON.stringify(data, null, 2)}</pre>
</div>
)
}
export default CalismaZamaniVerisi
import React from 'react'
import { Helmet } from 'react-helmet'
const SEO = ({ baslik, aciklama }) => (
<Helmet>
<title>{baslik}</title>
<meta name="description" content={aciklama} />
<meta property="og:title" content={baslik} />
<meta property="og:description" content={aciklama} />
<meta name="twitter:card" content="summary_large_image" />
</Helmet>
)
export default SEO
gatsby build
olarak ayarlayınpublic/
olarak ayarlayın2024 © Tüm hakları saklıdır - buraxta.com