{"id":38333,"date":"2026-01-29T02:40:57","date_gmt":"2026-01-28T23:40:57","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=38333"},"modified":"2026-01-29T02:40:57","modified_gmt":"2026-01-28T23:40:57","slug":"gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/","title":{"rendered":"Gatsby Link Bile\u015feni ile Sayfalar Aras\u0131 Navigasyon"},"content":{"rendered":"<p><body><\/p>\n<h2>Gatsby Link Bile\u015feni ile Sayfalar Aras\u0131 Navigasyon<\/h2>\n<p>Geli\u015fen web teknolojileriyle birlikte, kullan\u0131c\u0131 deneyimi ve web sitelerinin performans\u0131 her zamankinden daha kritik hale gelmi\u015ftir. Statik site olu\u015fturucular (SSG) bu alanda \u00f6nemli bir rol oynamakta olup, Gatsby de bu kategorinin \u00f6nde gelen temsilcilerinden biridir. React tabanl\u0131 modern bir framework olan Gatsby, sadece h\u0131zl\u0131 ve g\u00fcvenli web siteleri olu\u015fturmakla kalmaz, ayn\u0131 zamanda zengin bir kullan\u0131c\u0131 deneyimi sunar. Bu deneyimin temel ta\u015flar\u0131ndan biri de sayfalar aras\u0131 h\u0131zl\u0131 ve sorunsuz navigasyondur. \u0130\u015fte bu noktada Gatsby&#8217;nin <code>Link<\/code> bile\u015feni devreye girer. Bu makalede, Gatsby <code>Link<\/code> bile\u015feninin ne oldu\u011funu, neden kullan\u0131lmas\u0131 gerekti\u011fini, temel ve geli\u015fmi\u015f kullan\u0131m senaryolar\u0131n\u0131, programatik navigasyonu ve en iyi uygulamalar\u0131 derinlemesine inceleyece\u011fiz.<\/p>\n<h3>Gatsby ve H\u0131zl\u0131 Navigasyonun \u00d6nemi<\/h3>\n<p>Gatsby, modern web geli\u015ftirme d\u00fcnyas\u0131nda performans, g\u00fcvenlik ve geli\u015ftirici deneyimini bir araya getiren g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. React, GraphQL ve Webpack gibi teknolojileri kullanarak, statik olarak \u00fcretilmi\u015f ancak dinamik bir uygulama hissi veren web siteleri olu\u015fturmay\u0131 m\u00fcmk\u00fcn k\u0131lar. Gatsby&#8217;nin temel felsefesi, m\u00fcmk\u00fcn olan en h\u0131zl\u0131 kullan\u0131c\u0131 deneyimini sa\u011flamakt\u0131r. Bu h\u0131z, sadece sayfa y\u00fckleme s\u00fcreleriyle s\u0131n\u0131rl\u0131 de\u011fildir; ayn\u0131 zamanda kullan\u0131c\u0131lar\u0131n site i\u00e7inde gezinirken hissetti\u011fi ak\u0131c\u0131l\u0131\u011f\u0131 da kapsar.<\/p>\n<p>Geleneksel web sitelerinde, bir ba\u011flant\u0131ya t\u0131kland\u0131\u011f\u0131nda taray\u0131c\u0131 t\u00fcm sayfay\u0131 yeniden y\u00fckler. Bu durum, \u00f6zellikle yava\u015f internet ba\u011flant\u0131lar\u0131nda veya b\u00fcy\u00fck sayfalar aras\u0131nda ge\u00e7i\u015f yaparken belirgin bir gecikmeye neden olabilir. Modern web uygulamalar\u0131 ise tek sayfa uygulamalar\u0131 (SPA) mimarisini benimseyerek bu sorunu a\u015fmaya \u00e7al\u0131\u015f\u0131r. Gatsby, statik site avantajlar\u0131n\u0131 SPA&#8217;n\u0131n ak\u0131c\u0131l\u0131\u011f\u0131yla birle\u015ftirerek benzersiz bir hibrit yakla\u015f\u0131m sunar. \u0130\u015fte bu noktada Gatsby&#8217;nin <code>Link<\/code> bile\u015feni, bu ak\u0131c\u0131 deneyimi sa\u011flamak i\u00e7in kilit bir rol oynar. Standart HTML <code><a><\/code> etiketinin aksine, <code>Link<\/code> bile\u015feni sayfalar aras\u0131 ge\u00e7i\u015fleri tam bir sayfa yeniden y\u00fcklemesi yerine, JavaScript arac\u0131l\u0131\u011f\u0131yla yapar, bu da an\u0131nda ge\u00e7i\u015fler ve daha iyi bir kullan\u0131c\u0131 deneyimi sa\u011flar.<\/p>\n<h3>Gatsby&#8217;nin Temel Navigasyon Mekanizmas\u0131<\/h3>\n<p>Gatsby&#8217;nin navigasyon sistemi, dosya sistemi tabanl\u0131 y\u00f6nlendirme (file-system routing) prensibi \u00fczerine kuruludur. Bu, <code>src\/pages<\/code> dizini alt\u0131ndaki her bir React bile\u015feninin otomatik olarak bir web sayfas\u0131 haline geldi\u011fi anlam\u0131na gelir. \u00d6rne\u011fin, <code>src\/pages\/about.js<\/code> dosyas\u0131 <code>\/about<\/code> URL&#8217;sine kar\u015f\u0131l\u0131k gelirken, <code>src\/pages\/blog\/index.js<\/code> dosyas\u0131 <code>\/blog<\/code> URL&#8217;sine kar\u015f\u0131l\u0131k gelecektir. Bu otomatik yap\u0131land\u0131rma, geli\u015ftiricilerin y\u00f6nlendirme tablolar\u0131n\u0131 manuel olarak tan\u0131mlama ihtiyac\u0131n\u0131 ortadan kald\u0131r\u0131r ve projenin b\u00fcy\u00fcmesiyle birlikte y\u00f6netimi kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>Gatsby&#8217;nin derleme s\u00fcreci s\u0131ras\u0131nda, her bir sayfa i\u00e7in statik HTML dosyalar\u0131 ve gerekli JavaScript, CSS ve veri dosyalar\u0131 olu\u015fturulur. Ancak <code>Link<\/code> bile\u015feninin sihirli yan\u0131, bu statik yap\u0131lar\u0131n \u00fczerine bir &#8220;hidratasyon&#8221; katman\u0131 eklemesidir. Taray\u0131c\u0131da JavaScript y\u00fcklendikten sonra, Gatsby siteniz bir SPA gibi davranmaya ba\u015flar. <code>Link<\/code> bile\u015feni, t\u0131kland\u0131\u011f\u0131nda taray\u0131c\u0131n\u0131n yerel ge\u00e7mi\u015f API&#8217;sini (History API) kullanarak URL&#8217;yi de\u011fi\u015ftirir ve yaln\u0131zca yeni sayfan\u0131n i\u00e7eri\u011fini (bile\u015fenlerini ve verilerini) y\u00fckler. Tam bir sayfa yeniden y\u00fcklemesi yerine, Gatsby yaln\u0131zca de\u011fi\u015fen k\u0131s\u0131mlar\u0131 g\u00fcnceller, bu da ge\u00e7i\u015fleri inan\u0131lmaz derecede h\u0131zl\u0131 hale getirir. Ayr\u0131ca, Gatsby ak\u0131ll\u0131 bir \u015fekilde, kullan\u0131c\u0131n\u0131n muhtemelen bir sonraki t\u0131klayaca\u011f\u0131 ba\u011flant\u0131lar\u0131n kaynaklar\u0131n\u0131 (HTML, JavaScript, veri) \u00f6nceden y\u00fckleyerek (prefetching) performans\u0131 daha da art\u0131r\u0131r. Bu \u00f6n y\u00fckleme, kullan\u0131c\u0131 ba\u011flant\u0131ya t\u0131klad\u0131\u011f\u0131nda sayfan\u0131n neredeyse an\u0131nda g\u00f6r\u00fcnmesini sa\u011flar.<\/p>\n<h3><code>Link<\/code> Bile\u015feni Nedir ve Neden Kullan\u0131l\u0131r?<\/h3>\n<p><code>Link<\/code> bile\u015feni, Gatsby taraf\u0131ndan sa\u011flanan ve dahili sayfalar aras\u0131nda gezinmek i\u00e7in tasarlanm\u0131\u015f bir React bile\u015fenidir. Temel olarak bir <code><a><\/code> etiketi gibi g\u00f6r\u00fcnse de, Gatsby ekosisteminde \u00e7ok daha fazlas\u0131n\u0131 sunar.<\/p>\n<h4><code>Link<\/code> Bile\u015feninin Avantajlar\u0131:<\/h4>\n<p>1.  <strong>Client-Side Navigasyon (SPA Benzeri Deneyim):<\/strong> <code>Link<\/code> bile\u015feni, tam bir sayfa yeniden y\u00fcklemesi yerine, JavaScript kullanarak taray\u0131c\u0131n\u0131n URL&#8217;sini de\u011fi\u015ftirir ve sadece yeni sayfan\u0131n i\u00e7eri\u011fini i\u015fler. Bu, kullan\u0131c\u0131lara tek sayfa uygulama (SPA) benzeri, kesintisiz ve ak\u0131c\u0131 bir gezinme deneyimi sunar.<br \/>\n2.  <strong>Performans Optimizasyonu (Prefetching):<\/strong> Gatsby, <code>Link<\/code> bile\u015fenlerini kullanarak g\u00f6r\u00fcn\u00fcrdeki veya viewport&#8217;a yak\u0131n olan sayfalar\u0131n kaynaklar\u0131n\u0131 (HTML, JavaScript, veri) otomatik olarak \u00f6nceden y\u00fckler (prefetching). Bu sayede kullan\u0131c\u0131 bir ba\u011flant\u0131ya t\u0131klad\u0131\u011f\u0131nda, sayfa neredeyse an\u0131nda y\u00fcklenir \u00e7\u00fcnk\u00fc gerekli t\u00fcm kaynaklar zaten taray\u0131c\u0131 \u00f6nbelle\u011finde mevcuttur.<br \/>\n3.  <strong>Eri\u015filebilirlik (Accessibility):<\/strong> <code>Link<\/code> bile\u015feni, taray\u0131c\u0131n\u0131n ge\u00e7mi\u015fini do\u011fru bir \u015fekilde y\u00f6netir ve ekran okuyucular gibi yard\u0131mc\u0131 teknolojilerle uyumlu \u00e7al\u0131\u015f\u0131r. Bu, sitenizin daha geni\u015f bir kullan\u0131c\u0131 kitlesi i\u00e7in eri\u015filebilir olmas\u0131n\u0131 sa\u011flar.<br \/>\n4.  <strong>SEO Dostu:<\/strong> Gatsby, statik HTML sayfalar\u0131 \u00fcretti\u011fi i\u00e7in arama motorlar\u0131 taraf\u0131ndan kolayca taranabilir. <code>Link<\/code> bile\u015feni ile yap\u0131lan dahili gezinmeler, arama motorlar\u0131n\u0131n sitenizin yap\u0131s\u0131n\u0131 ve sayfalar aras\u0131 ili\u015fkileri anlamas\u0131na engel olmaz. Aksine, h\u0131zl\u0131 y\u00fckleme s\u00fcreleri ve iyi bir kullan\u0131c\u0131 deneyimi, SEO s\u0131ralamalar\u0131n\u0131 olumlu etkileyen fakt\u00f6rlerdir.<br \/>\n5.  <strong>Geli\u015ftirici Deneyimi:<\/strong> Gatsby&#8217;nin dosya sistemi tabanl\u0131 y\u00f6nlendirmesiyle birle\u015fti\u011finde, <code>Link<\/code> bile\u015fenini kullanmak son derece sezgiseldir. Geli\u015ftiricilerin karma\u015f\u0131k y\u00f6nlendirme yap\u0131land\u0131rmalar\u0131yla u\u011fra\u015fmas\u0131na gerek kalmaz.<\/p>\n<h4>Standart <code><a><\/code> Etiketi ile Kar\u015f\u0131la\u015ft\u0131rma:<\/h4>\n<p>*   <strong><code><a><\/code> Etiketi:<\/strong><br \/>\n    *   Her t\u0131klamada tam bir sayfa yeniden y\u00fcklemesi yapar.<br \/>\n    *   Daha yava\u015f bir kullan\u0131c\u0131 deneyimi sunar.<br \/>\n    *   D\u0131\u015f ba\u011flant\u0131lar (ba\u015fka bir web sitesine) veya dosya indirmeleri i\u00e7in uygundur.<br \/>\n    *   Gatsby&#8217;nin performans optimizasyonlar\u0131ndan faydalanmaz.<br \/>\n*   <strong><code>Link<\/code> Bile\u015feni:<\/strong><br \/>\n    *   Client-side navigasyon ile sayfa yeniden y\u00fcklemesi yapmaz.<br \/>\n    *   An\u0131nda ge\u00e7i\u015fler ve ak\u0131c\u0131 bir kullan\u0131c\u0131 deneyimi sunar.<br \/>\n    *   Yaln\u0131zca dahili Gatsby sayfalar\u0131 aras\u0131nda gezinmek i\u00e7in tasarlanm\u0131\u015ft\u0131r.<br \/>\n    *   Gatsby&#8217;nin prefetching ve di\u011fer performans optimizasyonlar\u0131ndan tam olarak yararlan\u0131r.<\/p>\n<p>\u00d6zetle, Gatsby uygulaman\u0131z i\u00e7inde bir sayfadan di\u011ferine ge\u00e7i\u015f yapman\u0131z gerekti\u011finde, standart <code><a><\/code> etiketi yerine her zaman <code>Link<\/code> bile\u015fenini kullanmal\u0131s\u0131n\u0131z. Bu, hem performans hem de kullan\u0131c\u0131 deneyimi a\u00e7\u0131s\u0131ndan en iyi uygulamad\u0131r.<\/p>\n<h3><code>Link<\/code> Bile\u015feninin Temel Kullan\u0131m\u0131<\/h3>\n<p>Gatsby <code>Link<\/code> bile\u015fenini kullanmak olduk\u00e7a basittir. \u0130lk ad\u0131m, bile\u015feni Gatsby&#8217;den projenize aktarmakt\u0131r.<\/p>\n<h4>1. <code>Link<\/code> Bile\u015fenini \u0130\u00e7e Aktarma:<\/h4>\n<pre><code class=\"language-jsx\">import { Link } from 'gatsby';<\/code><\/pre>\n<p>Bu ifadeyi, <code>Link<\/code> bile\u015fenini kullanaca\u011f\u0131n\u0131z herhangi bir React bile\u015feninin (\u00f6rne\u011fin, bir navigasyon men\u00fcs\u00fc, bir blog g\u00f6nderisi listesi vb.) en \u00fcst\u00fcne eklemeniz gerekir.<\/p>\n<h4>2. Temel Kullan\u0131m:<\/h4>\n<p><code>Link<\/code> bile\u015feninin en \u00f6nemli prop&#8217;u <code>to<\/code> prop&#8217;udur. Bu prop, kullan\u0131c\u0131n\u0131n t\u0131klamas\u0131 durumunda hangi sayfaya y\u00f6nlendirilece\u011fini belirtir. De\u011feri, Gatsby projenizdeki bir sayfan\u0131n yolu olmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-jsx\">import React from 'react';\nimport { Link } from 'gatsby';\n\nconst Header = () => (\n  <nav>\n    <Link to=\"\/\">Ana Sayfa<\/Link>\n    <Link to=\"\/about\">Hakk\u0131m\u0131zda<\/Link>\n    <Link to=\"\/blog\">Blog<\/Link>\n    <Link to=\"\/contact\">\u0130leti\u015fim<\/Link>\n  <\/nav>\n);\n\nexport default Header;<\/code><\/pre>\n<p>Yukar\u0131daki \u00f6rnekte:<br \/>\n*   <code><Link to=\"\/\">Ana Sayfa<\/Link><\/code>: Sitenizin k\u00f6k dizinine (genellikle ana sayfa) y\u00f6nlendirir.<br \/>\n*   <code><Link to=\"\/about\">Hakk\u0131m\u0131zda<\/Link><\/code>: <code>src\/pages\/about.js<\/code> veya <code>src\/pages\/about\/index.js<\/code> ile e\u015fle\u015fen <code>\/about<\/code> sayfas\u0131na y\u00f6nlendirir.<br \/>\n*   <code><Link to=\"\/blog\">Blog<\/Link><\/code>: <code>\/blog<\/code> sayfas\u0131na y\u00f6nlendirir.<br \/>\n*   <code><Link to=\"\/contact\">\u0130leti\u015fim<\/Link><\/code>: <code>\/contact<\/code> sayfas\u0131na y\u00f6nlendirir.<\/p>\n<h4>3. Relative (G\u00f6receli) ve Absolute (Mutlak) Yollar:<\/h4>\n<p><code>to<\/code> prop&#8217;una hem mutlak hem de g\u00f6receli yollar sa\u011flayabilirsiniz:<\/p>\n<p>*   <strong>Mutlak Yollar:<\/strong> Genellikle bir <code>\/<\/code> ile ba\u015flar ve sitenin k\u00f6k dizininden itibaren tam yolu belirtir. Yukar\u0131daki \u00f6rneklerdeki t\u00fcm yollar mutlak yollard\u0131r.<\/p>\n<pre><code class=\"language-jsx\"><Link to=\"\/products\/electronics\">Elektronik \u00dcr\u00fcnler<\/Link><\/code><\/pre>\n<p>*   <strong>G\u00f6receli Yollar:<\/strong> Mevcut sayfan\u0131n URL&#8217;sine g\u00f6re belirlenir. \u00d6rne\u011fin, <code>\/blog\/my-post<\/code> sayfas\u0131ndaysan\u0131z:<\/p>\n<pre><code class=\"language-jsx\">\/\/ \/blog\/my-post\/comments sayfas\u0131na gider\n    <Link to=\"comments\">Yorumlar<\/Link> \n\n    \/\/ \/blog sayfas\u0131na gider (bir dizin yukar\u0131)\n    <Link to=\"..\/\">Blog Ana Sayfa<\/Link><\/code><\/pre>\n<p>    G\u00f6receli yollar, \u00f6zellikle derin i\u00e7 i\u00e7e ge\u00e7mi\u015f dizin yap\u0131lar\u0131na sahip bloglar veya dok\u00fcmantasyon siteleri gibi yerlerde kullan\u0131\u015fl\u0131 olabilir, ancak genellikle mutlak yollar daha net ve hata yapma olas\u0131l\u0131\u011f\u0131 daha d\u00fc\u015f\u00fckt\u00fcr. Yeni ba\u015flayanlar i\u00e7in mutlak yollarla ba\u015flamak genellikle daha g\u00fcvenlidir.<\/p>\n<p><code>Link<\/code> bile\u015feninin temel kullan\u0131m\u0131 bu kadar basittir. Ancak Gatsby, kullan\u0131c\u0131 deneyimini daha da zenginle\u015ftirmek i\u00e7in bir dizi geli\u015fmi\u015f \u00f6zellik ve prop sunar.<\/p>\n<h3><code>Link<\/code> Bile\u015feninin Geli\u015fmi\u015f \u00d6zellikleri ve Prop&#8217;lar\u0131<\/h3>\n<p>Gatsby <code>Link<\/code> bile\u015feni, sadece temel navigasyon sa\u011flamakla kalmaz, ayn\u0131 zamanda kullan\u0131c\u0131 deneyimini ve aray\u00fcz etkile\u015fimlerini geli\u015ftirmek i\u00e7in \u00e7e\u015fitli geli\u015fmi\u015f prop&#8217;lar sunar.<\/p>\n<h4>1. <code>activeClassName<\/code>: Aktif Ba\u011flant\u0131y\u0131 Vurgulama<\/h4>\n<p>Bir navigasyon men\u00fcs\u00fcnde, kullan\u0131c\u0131n\u0131n o anda hangi sayfada oldu\u011funu belirtmek yayg\u0131n bir UI desenidir. <code>activeClassName<\/code> prop&#8217;u, <code>Link<\/code> bile\u015feninin <code>to<\/code> prop&#8217;unda belirtilen yolla mevcut sayfan\u0131n yolu e\u015fle\u015fti\u011finde uygulanacak bir CSS s\u0131n\u0131f\u0131 ad\u0131 tan\u0131mlaman\u0131za olanak tan\u0131r.<\/p>\n<pre><code class=\"language-jsx\">import React from 'react';\nimport { Link } from 'gatsby';\n\nconst Navbar = () => (\n  <nav>\n    <Link to=\"\/\" activeClassName=\"active-link\">Ana Sayfa<\/Link>\n    <Link to=\"\/about\" activeClassName=\"active-link\">Hakk\u0131m\u0131zda<\/Link>\n    <Link to=\"\/blog\" activeClassName=\"active-link\">Blog<\/Link>\n  <\/nav>\n);\n\nexport default Navbar;<\/code><\/pre>\n<p><strong>CSS \u00d6rne\u011fi (<code>src\/styles\/global.css<\/code> veya bir mod\u00fcl CSS dosyas\u0131 i\u00e7inde):<\/strong><\/p>\n<pre><code class=\"language-css\">\/<em> global.css <\/em>\/\n.active-link {\n  font-weight: bold;\n  color: #007bff;\n  border-bottom: 2px solid #007bff;\n}<\/code><\/pre>\n<p>Bu \u00f6rnekte, kullan\u0131c\u0131 <code>\/about<\/code> sayfas\u0131ndayken &#8220;Hakk\u0131m\u0131zda&#8221; ba\u011flant\u0131s\u0131na <code>active-link<\/code> s\u0131n\u0131f\u0131 uygulanacak ve bu ba\u011flant\u0131 kal\u0131n ve mavi renkte g\u00f6r\u00fcnecektir.<\/p>\n<h4>2. <code>activeStyle<\/code>: Aktif Ba\u011flant\u0131ya Inline Stil Uygulama<\/h4>\n<p><code>activeClassName<\/code> yerine veya onunla birlikte, <code>activeStyle<\/code> prop&#8217;unu kullanarak aktif ba\u011flant\u0131ya do\u011frudan inline CSS stilleri uygulayabilirsiniz.<\/p>\n<pre><code class=\"language-jsx\">import React from 'react';\nimport { Link } from 'gatsby';\n\nconst Navbar = () => (\n  <nav>\n    <Link to=\"\/\" activeStyle={{ color: 'red', textDecoration: 'underline' }}>Ana Sayfa<\/Link>\n    <Link to=\"\/products\" activeStyle={{ color: 'red', textDecoration: 'underline' }}>\u00dcr\u00fcnler<\/Link>\n  <\/nav>\n);\n\nexport default Navbar;<\/code><\/pre>\n<p>Genellikle, b\u00fcy\u00fck projelerde ve tutarl\u0131 bir tasar\u0131m sa\u011flamak i\u00e7in <code>activeClassName<\/code> kullanmak daha iyi bir yakla\u015f\u0131md\u0131r, ancak h\u0131zl\u0131 prototipler veya \u00e7ok spesifik durumlar i\u00e7in <code>activeStyle<\/code> kullan\u0131\u015fl\u0131 olabilir.<\/p>\n<h4>3. <code>partiallyActive<\/code>: K\u0131smi E\u015fle\u015fmeleri Vurgulama<\/h4>\n<p><code>activeClassName<\/code> varsay\u0131lan olarak tam yol e\u015fle\u015fmesi gerektirir. Yani <code>\/blog<\/code> ba\u011flant\u0131s\u0131 sadece <code>\/blog<\/code> sayfas\u0131nda aktif olur, <code>\/blog\/my-first-post<\/code> sayfas\u0131nda de\u011fil. <code>partiallyActive<\/code> prop&#8217;unu <code>true<\/code> olarak ayarlayarak, bir ba\u011flant\u0131n\u0131n URL&#8217;si mevcut sayfan\u0131n URL&#8217;sinin bir \u00f6n eki oldu\u011funda da aktif olmas\u0131n\u0131 sa\u011flayabilirsiniz. Bu, bir blog veya kategori sayfalar\u0131 gibi hiyerar\u015fik yap\u0131larda \u00e7ok kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<pre><code class=\"language-jsx\">import React from 'react';\nimport { Link } from 'gatsby';\n\nconst Navbar = () => (\n  <nav>\n    <Link to=\"\/\" activeClassName=\"active\" partiallyActive={true}>Ana Sayfa<\/Link>\n    <Link to=\"\/blog\" activeClassName=\"active\" partiallyActive={true}>Blog<\/Link>\n    <Link to=\"\/products\" activeClassName=\"active\" partiallyActive={true}>\u00dcr\u00fcnler<\/Link>\n  <\/nav>\n);\n\nexport default Navbar;<\/code><\/pre>\n<p>Bu durumda, <code>\/blog<\/code> ba\u011flant\u0131s\u0131 hem <code>\/blog<\/code> sayfas\u0131nda hem de <code>\/blog\/my-first-post<\/code>, <code>\/blog\/category\/tech<\/code> gibi alt sayfalarda aktif olacakt\u0131r.<\/p>\n<h4>4. <code>state<\/code>: Sayfalar Aras\u0131 Durum (State) Aktar\u0131m\u0131<\/h4>\n<p>Bazen, bir sayfadan di\u011ferine ge\u00e7erken URL&#8217;de g\u00f6r\u00fcnmesini istemedi\u011finiz veya URL parametresi olarak ge\u00e7irilmesi uygun olmayan verileri aktarman\u0131z gerekebilir. <code>state<\/code> prop&#8217;u, bir JavaScript nesnesi arac\u0131l\u0131\u011f\u0131yla bu t\u00fcr verileri aktarman\u0131z\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-jsx\">\/\/ Kaynak sayfa (\u00f6rne\u011fin, \u00dcr\u00fcn Listesi)\nimport React from 'react';\nimport { Link } from 'gatsby';\n\nconst ProductList = () => {\n  const product = {\n    id: 'prod_123',\n    name: 'Ak\u0131ll\u0131 Telefon',\n    price: 999,\n    fromPage: '\/products' \/\/ Hangi sayfadan geldi\u011fimizi belirtiyoruz\n  };\n\n  return (\n    <div>\n      \n      <Link \n        to=\"\/product-detail\" \n        state={{ productData: product }} \/\/ <code>product<\/code> objesini <code>productData<\/code> ad\u0131yla aktar\u0131yoruz\n      >\n        {product.name} Detaylar\u0131\n      <\/Link>\n    <\/div>\n  );\n};\n\nexport default ProductList;<\/code><\/pre>\n<p><strong>Hedef Sayfada (<code>src\/pages\/product-detail.js<\/code>) Duruma Eri\u015fim:<\/strong><\/p>\n<p>Hedef sayfada, <code>location<\/code> prop&#8217;u arac\u0131l\u0131\u011f\u0131yla bu duruma eri\u015febilirsiniz. Gatsby sayfalar\u0131, varsay\u0131lan olarak <code>location<\/code> prop&#8217;unu al\u0131r.<\/p>\n<pre><code class=\"language-jsx\">import React from 'react';\n\nconst ProductDetailPage = ({ location }) => {\n  const productData = location.state?.productData; \/\/ state objesine g\u00fcvenli eri\u015fim\n\n  if (!productData) {\n    return <p>\u00dcr\u00fcn bilgisi bulunamad\u0131.<\/p>;\n  }\n\n  return (\n    <div>\n      \n      <p>ID: {productData.id}<\/p>\n      <p>Fiyat: ${productData.price}<\/p>\n      <p>Geldi\u011fi Sayfa: {productData.fromPage}<\/p>\n      {\/<em> ...di\u011fer \u00fcr\u00fcn detaylar\u0131 <\/em>\/}\n    <\/div>\n  );\n};\n\nexport default ProductDetailPage;<\/code><\/pre>\n<p><code>state<\/code> prop&#8217;u, \u00f6zellikle form g\u00f6nderimleri sonras\u0131 mesajlar\u0131 g\u00f6sterme, belirli bir filtreleme durumunu koruma veya ge\u00e7ici verileri iletme gibi senaryolarda olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<h4>5. <code>replace<\/code>: Ge\u00e7mi\u015fi De\u011fi\u015ftirme<\/h4>\n<p>Varsay\u0131lan olarak, <code>Link<\/code> bile\u015feni yeni bir sayfaya gitti\u011finde taray\u0131c\u0131n\u0131n ge\u00e7mi\u015fine yeni bir giri\u015f ekler. Bu, kullan\u0131c\u0131n\u0131n &#8220;Geri&#8221; butonuna basarak \u00f6nceki sayfaya d\u00f6nmesini sa\u011flar. Ancak bazen, mevcut sayfay\u0131 ge\u00e7mi\u015ften silip yerine yeni sayfay\u0131 koymak isteyebilirsiniz (\u00f6rne\u011fin, bir form g\u00f6nderimi sonras\u0131 veya bir oturum a\u00e7ma i\u015fleminden sonra kullan\u0131c\u0131n\u0131n geri tu\u015funa basarak oturum a\u00e7ma sayfas\u0131na d\u00f6nmesini engellemek i\u00e7in). <code>replace<\/code> prop&#8217;unu <code>true<\/code> olarak ayarlayarak bunu yapabilirsiniz.<\/p>\n<pre><code class=\"language-jsx\"><Link to=\"\/dashboard\" replace>G\u00f6sterge Paneli'ne Git (Ge\u00e7mi\u015fi De\u011fi\u015ftir)<\/Link><\/code><\/pre>\n<p>Bu durumda, kullan\u0131c\u0131 <code>\/dashboard<\/code> sayfas\u0131na gitti\u011finde, taray\u0131c\u0131 ge\u00e7mi\u015findeki mevcut sayfa <code>\/dashboard<\/code> ile de\u011fi\u015ftirilir.<\/p>\n<h4>6. <code>getProps<\/code>: Dinamik Ba\u011flant\u0131 Prop&#8217;lar\u0131 Olu\u015fturma<\/h4>\n<p><code>getProps<\/code> prop&#8217;u, <code>Link<\/code> bile\u015fenine dinamik olarak prop&#8217;lar uygulaman\u0131za olanak tan\u0131yan bir fonksiyondur. Bu fonksiyon, ba\u011flant\u0131n\u0131n mevcut durumu hakk\u0131nda bilgi i\u00e7eren bir obje al\u0131r ve bir prop objesi d\u00f6nd\u00fcrmelidir. Bu, \u00f6zellikle karma\u015f\u0131k aktif ba\u011flant\u0131 stilleri veya di\u011fer ko\u015fullu prop&#8217;lar i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<pre><code class=\"language-jsx\">import React from 'react';\nimport { Link } from 'gatsby';\n\nconst CustomLink = ({ to, children }) => (\n  <Link\n    to={to}\n    getProps={({ isCurrent, isPartiallyCurrent }) => {\n      \/\/ isCurrent: to prop'u mevcut URL ile tam e\u015fle\u015fiyor mu?\n      \/\/ isPartiallyCurrent: to prop'u mevcut URL'nin bir \u00f6n eki mi?\n      const className = isCurrent || isPartiallyCurrent ? 'custom-active-link' : '';\n      const style = isCurrent ? { borderBottom: '2px solid purple' } : {};\n      \n      return { className, style };\n    }}\n  >\n    {children}\n  <\/Link>\n);\n\nconst Navbar = () => (\n  <nav>\n    <CustomLink to=\"\/\">Ana Sayfa<\/CustomLink>\n    <CustomLink to=\"\/products\">\u00dcr\u00fcnler<\/CustomLink>\n    <CustomLink to=\"\/products\/electronics\">Elektronik<\/CustomLink>\n  <\/nav>\n);\n\nexport default Navbar;<\/code><\/pre>\n<p><code>getProps<\/code> fonksiyonu, <code>activeClassName<\/code> ve <code>activeStyle<\/code>&#8216;dan daha fazla esneklik sa\u011flar, \u00e7\u00fcnk\u00fc <code>isCurrent<\/code> ve <code>isPartiallyCurrent<\/code> gibi de\u011ferlere dayal\u0131 olarak birden fazla prop&#8217;u dinamik olarak ayarlaman\u0131za olanak tan\u0131r.<\/p>\n<p>Bu geli\u015fmi\u015f prop&#8217;lar, Gatsby <code>Link<\/code> bile\u015fenini sadece bir navigasyon arac\u0131 olmaktan \u00e7\u0131kar\u0131p, zengin ve etkile\u015fimli bir kullan\u0131c\u0131 aray\u00fcz\u00fc olu\u015fturmak i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7 haline getirir.<\/p>\n<h3>Programatik Navigasyon: <code>navigate<\/code> Fonksiyonu<\/h3>\n<p>Baz\u0131 durumlarda, bir sayfaya do\u011frudan bir ba\u011flant\u0131 t\u0131klamas\u0131yla de\u011fil, bir JavaScript olay\u0131 (\u00f6rne\u011fin, bir form g\u00f6nderimi, bir buton t\u0131klamas\u0131, bir API \u00e7a\u011fr\u0131s\u0131 sonras\u0131) sonucunda programatik olarak y\u00f6nlendirme yapman\u0131z gerekebilir. Gatsby, bu t\u00fcr senaryolar i\u00e7in <code>navigate<\/code> fonksiyonunu sa\u011flar.<\/p>\n<h4>1. <code>navigate<\/code> Fonksiyonunu \u0130\u00e7e Aktarma:<\/h4>\n<p><code>navigate<\/code> fonksiyonu da <code>gatsby<\/code> paketinden i\u00e7e aktar\u0131l\u0131r.<\/p>\n<pre><code class=\"language-jsx\">import { navigate } from 'gatsby';<\/code><\/pre>\n<h4>2. Temel Kullan\u0131m:<\/h4>\n<p><code>navigate<\/code> fonksiyonu, y\u00f6nlendirilecek yolu bir string olarak parametre olarak al\u0131r.<\/p>\n<pre><code class=\"language-jsx\">import React from 'react';\nimport { navigate } from 'gatsby';\n\nconst MyForm = () => {\n  const handleSubmit = (event) => {\n    event.preventDefault();\n    \/\/ Form verilerini i\u015fleyin...\n    \n    \/\/ \u0130\u015flem bittikten sonra kullan\u0131c\u0131y\u0131 ba\u015fka bir sayfaya y\u00f6nlendirin\n    navigate('\/success'); \n  };\n\n  return (\n    <form onSubmit={handleSubmit}>\n      {\/<em> Form elemanlar\u0131 <\/em>\/}\n      <button type=\"submit\">G\u00f6nder<\/button>\n    <\/form>\n  );\n};\n\nexport default MyForm;<\/code><\/pre>\n<h4>3. <code>navigate<\/code> ile Geli\u015fmi\u015f Se\u00e7enekler:<\/h4>\n<p><code>navigate<\/code> fonksiyonu, <code>Link<\/code> bile\u015feninin baz\u0131 prop&#8217;lar\u0131na benzer se\u00e7enekleri ikinci bir obje parametresi olarak kabul edebilir:<\/p>\n<p>*   <strong><code>replace<\/code>:<\/strong> <code>true<\/code> olarak ayarlan\u0131rsa, taray\u0131c\u0131 ge\u00e7mi\u015findeki mevcut giri\u015fi yeni yolla de\u011fi\u015ftirir. <code>Link<\/code> bile\u015fenindeki <code>replace<\/code> prop&#8217;uyla ayn\u0131 i\u015flevi g\u00f6r\u00fcr.<\/p>\n<pre><code class=\"language-jsx\">navigate('\/login', { replace: true }); \/\/ Oturum a\u00e7ma sayfas\u0131n\u0131 ge\u00e7mi\u015ften sil<\/code><\/pre>\n<p>*   <strong><code>state<\/code>:<\/strong> <code>Link<\/code> bile\u015fenindeki <code>state<\/code> prop&#8217;u gibi, sayfalar aras\u0131 durum aktar\u0131m\u0131 i\u00e7in bir obje g\u00f6ndermenizi sa\u011flar.<\/p>\n<pre><code class=\"language-jsx\">const handleProductClick = (productId) => {\n      navigate('\/product-detail', { state: { productId: productId, source: 'homepage' } });\n    };<\/code><\/pre>\n<p>    Hedef sayfada, <code>location.state<\/code> arac\u0131l\u0131\u011f\u0131yla bu verilere eri\u015filebilir.<br \/>\n*   <strong><code>from<\/code>:<\/strong> Dahili olarak Gatsby taraf\u0131ndan kullan\u0131l\u0131r ve genellikle manuel olarak ayarlaman\u0131z gerekmez.<\/p>\n<p><code>navigate<\/code> fonksiyonu, kullan\u0131c\u0131 etkile\u015fimine dayal\u0131 veya dinamik olarak belirlenen y\u00f6nlendirmeler i\u00e7in vazge\u00e7ilmez bir ara\u00e7t\u0131r. \u00d6rne\u011fin, bir kullan\u0131c\u0131n\u0131n yetkilendirme durumuna g\u00f6re farkl\u0131 sayfalara y\u00f6nlendirme yapmak, bir hata durumunda belirli bir hata sayfas\u0131na g\u00f6ndermek veya bir arama kutusundan gelen sorguya g\u00f6re sonu\u00e7 sayfas\u0131na gitmek gibi senaryolarda s\u0131k\u00e7a kullan\u0131l\u0131r.<\/p>\n<h3>D\u0131\u015f Ba\u011flant\u0131lar ve <code><a><\/code> Etiketi Kullan\u0131m\u0131<\/h3>\n<p>Gatsby <code>Link<\/code> bile\u015feni, dahili sayfalar aras\u0131nda gezinmek i\u00e7in tasarlanm\u0131\u015ft\u0131r ve Gatsby&#8217;nin performans optimizasyonlar\u0131ndan yararlan\u0131r. Ancak, her zaman dahili sayfalara y\u00f6nlendirme yapmay\u0131z. Bazen, sitenizden tamamen harici bir web sitesine veya bir dosyaya ba\u011flant\u0131 vermeniz gerekebilir. Bu durumlarda, geleneksel HTML <code><a><\/code> etiketini kullanmak do\u011fru yakla\u015f\u0131md\u0131r.<\/p>\n<h4><code><a><\/code> Etiketinin Kullan\u0131m Senaryolar\u0131:<\/h4>\n<p>1.  <strong>Harici Web Siteleri:<\/strong> Sitenizden ba\u015fka bir web sitesine y\u00f6nlendirme yaparken <code><a><\/code> etiketini kullan\u0131n.<\/p>\n<pre><code class=\"language-jsx\"><a href=\"https:\/\/www.google.com\" target=\"_blank\" rel=\"noopener noreferrer\">Google'a Git<\/a><\/code><\/pre>\n<p>    *   <code>target=\"_blank\"<\/code>: Ba\u011flant\u0131n\u0131n yeni bir sekmede a\u00e7\u0131lmas\u0131n\u0131 sa\u011flar.<br \/>\n    *   <code>rel=\"noopener noreferrer\"<\/code>: G\u00fcvenlik ve performans nedenleriyle <code>target=\"_blank\"<\/code> ile birlikte kullan\u0131lmas\u0131 \u00f6nerilir. Bu, yeni a\u00e7\u0131lan sayfan\u0131n mevcut sayfa \u00fczerinde kontrol sahibi olmas\u0131n\u0131 engeller.<\/p>\n<p>2.  <strong>Dosya \u0130ndirmeleri:<\/strong> PDF, ZIP veya di\u011fer dosya t\u00fcrlerini indirmek i\u00e7in <code><a><\/code> etiketini kullan\u0131n.<\/p>\n<pre><code class=\"language-jsx\"><a href=\"\/documents\/my-report.pdf\" download>Raporu \u0130ndir (PDF)<\/a><\/code><\/pre>\n<p>    <code>download<\/code> \u00f6zniteli\u011fi, taray\u0131c\u0131ya ba\u011flant\u0131n\u0131n bir indirme i\u015flemi ba\u015flatmas\u0131 gerekti\u011fini bildirir.<\/p>\n<p>3.  <strong>E-posta Ba\u011flant\u0131lar\u0131:<\/strong> E-posta g\u00f6nderme program\u0131n\u0131 a\u00e7an ba\u011flant\u0131lar i\u00e7in <code>mailto:<\/code> protokol\u00fcn\u00fc kullan\u0131n.<\/p>\n<pre><code class=\"language-jsx\"><a href=\"mailto:info@example.com?subject=Soru\">Bize E-posta G\u00f6nder<\/a><\/code><\/pre>\n<p>4.  <strong>Telefon Numaras\u0131 Ba\u011flant\u0131lar\u0131:<\/strong> Mobil cihazlarda do\u011frudan arama yapmay\u0131 sa\u011flayan ba\u011flant\u0131lar i\u00e7in <code>tel:<\/code> protokol\u00fcn\u00fc kullan\u0131n.<\/p>\n<pre><code class=\"language-jsx\"><a href=\"tel:+905551234567\">Bizi Ara (+90 555 123 45 67)<\/a><\/code><\/pre>\n<p>5.  <strong>Sayfa \u0130\u00e7i \u00c7apa Ba\u011flant\u0131lar\u0131 (Anchor Links):<\/strong> Ayn\u0131 sayfa i\u00e7indeki belirli bir b\u00f6l\u00fcme atlamak i\u00e7in <code><a><\/code> etiketini kullanabilirsiniz.<\/p>\n<pre><code class=\"language-jsx\"><a href=\"#section-id\">B\u00f6l\u00fcme Git<\/a>\n    {\/<em> ...sayfa i\u00e7eri\u011fi... <\/em>\/}\n    <h2 id=\"section-id\">\u0130lgili B\u00f6l\u00fcm Ba\u015fl\u0131\u011f\u0131<\/h2><\/code><\/pre>\n<p>    Gatsby&#8217;nin <code>Link<\/code> bile\u015feni de \u00e7apa ba\u011flant\u0131lar\u0131n\u0131 destekler, ancak basit sayfa i\u00e7i atlamalar i\u00e7in <code><a><\/code> etiketi genellikle yeterlidir.<\/p>\n<p><strong>\u00d6nemli Not:<\/strong> Asla harici ba\u011flant\u0131lar veya dosya indirmeleri i\u00e7in <code>Link<\/code> bile\u015fenini kullanmaya \u00e7al\u0131\u015fmay\u0131n. <code>Link<\/code> bile\u015feni, dahili Gatsby yollar\u0131 i\u00e7in optimize edilmi\u015ftir ve harici URL&#8217;lerle kullan\u0131ld\u0131\u011f\u0131nda beklenen davran\u0131\u015f\u0131 sergilemeyebilir veya hatalara yol a\u00e7abilir. Her zaman do\u011fru arac\u0131 do\u011fru i\u015f i\u00e7in kullan\u0131n. Dahili navigasyon i\u00e7in <code>Link<\/code>, harici veya \u00f6zel protokoller i\u00e7in <code><a><\/code>.<\/p>\n<h3>SEO ve Eri\u015filebilirlik \u0130pu\u00e7lar\u0131<\/h3>\n<p>Web sitenizin ba\u015far\u0131s\u0131 i\u00e7in sadece h\u0131zl\u0131 ve fonksiyonel olmas\u0131 yetmez; ayn\u0131 zamanda arama motorlar\u0131 taraf\u0131ndan kolayca bulunabilmesi (SEO) ve herkes taraf\u0131ndan kullan\u0131labilir olmas\u0131 (Eri\u015filebilirlik) gerekir. Gatsby <code>Link<\/code> bile\u015fenini kullan\u0131rken bu iki alan\u0131 da g\u00f6z \u00f6n\u00fcnde bulundurmak \u00f6nemlidir.<\/p>\n<h4>SEO \u0130pu\u00e7lar\u0131:<\/h4>\n<p>1.  <strong>Anlaml\u0131 Ba\u011flant\u0131 Metinleri:<\/strong> Ba\u011flant\u0131lar\u0131n\u0131z\u0131n metinleri (anchor text), hedef sayfan\u0131n i\u00e7eri\u011fini a\u00e7\u0131k\u00e7a belirtmelidir. &#8220;Buraya t\u0131klay\u0131n&#8221; veya &#8220;Daha fazla oku&#8221; gibi genel ifadeler yerine, &#8220;\u00dcr\u00fcn Detaylar\u0131&#8221;, &#8220;Hakk\u0131m\u0131zda Sayfas\u0131&#8221; veya &#8220;Blog Yaz\u0131s\u0131 Ba\u015fl\u0131\u011f\u0131&#8221; gibi a\u00e7\u0131klay\u0131c\u0131 metinler kullan\u0131n. Arama motorlar\u0131, ba\u011flant\u0131 metinlerini kullanarak sayfalar\u0131n\u0131z\u0131n ne hakk\u0131nda oldu\u011funu anlamaya \u00e7al\u0131\u015f\u0131r.<br \/>\n2.  <strong>Temiz ve Anla\u015f\u0131l\u0131r URL&#8217;ler:<\/strong> Gatsby, dosya sistemi tabanl\u0131 y\u00f6nlendirme sayesinde genellikle temiz URL&#8217;ler olu\u015fturur (<code>\/about<\/code>, <code>\/blog\/my-post<\/code>). Bu URL&#8217;ler, kullan\u0131c\u0131lar ve arama motorlar\u0131 i\u00e7in kolayca okunabilir ve anla\u015f\u0131labilir olmal\u0131d\u0131r.<br \/>\n3.  <strong>Dahili Ba\u011flant\u0131 Yap\u0131s\u0131:<\/strong> <code>Link<\/code> bile\u015feni ile siteniz i\u00e7indeki sayfalar aras\u0131nda mant\u0131kl\u0131 ve hiyerar\u015fik bir ba\u011flant\u0131 yap\u0131s\u0131 olu\u015fturun. Bu, arama motorlar\u0131n\u0131n sitenizi daha verimli bir \u015fekilde taramas\u0131na ve sayfalar\u0131n\u0131z aras\u0131ndaki ili\u015fkiyi anlamas\u0131na yard\u0131mc\u0131 olur. Ayr\u0131ca, \u00f6nemli sayfalar\u0131n\u0131za daha fazla dahili ba\u011flant\u0131 vererek bu sayfalar\u0131n arama motoru s\u0131ralamas\u0131n\u0131 art\u0131rabilirsiniz.<br \/>\n4.  <strong>H\u0131zl\u0131 Y\u00fckleme S\u00fcreleri:<\/strong> Gatsby&#8217;nin <code>Link<\/code> bile\u015feni ve genel optimizasyonlar\u0131 sayesinde siteniz zaten h\u0131zl\u0131 y\u00fcklenir. H\u0131zl\u0131 y\u00fckleme s\u00fcreleri, arama motoru s\u0131ralamalar\u0131 i\u00e7in \u00f6nemli bir fakt\u00f6rd\u00fcr ve kullan\u0131c\u0131 deneyimini do\u011frudan etkiler.<\/p>\n<h4>Eri\u015filebilirlik (Accessibility) \u0130pu\u00e7lar\u0131:<\/h4>\n<p>1.  <strong>Anlaml\u0131 Ba\u011flant\u0131 Metinleri (Tekrar):<\/strong> Eri\u015filebilirlik a\u00e7\u0131s\u0131ndan da ba\u011flant\u0131 metinleri kritik \u00f6neme sahiptir. Ekran okuyucular kullanan ki\u015filer, ba\u011flant\u0131 metinlerine g\u00f6re sayfalar aras\u0131nda gezinirler. Anlaml\u0131 metinler, bu kullan\u0131c\u0131lara nereye gidecekleri konusunda net bir fikir verir.<br \/>\n2.  <strong>Klavye Navigasyonu:<\/strong> <code>Link<\/code> bile\u015feni, varsay\u0131lan olarak klavye ile gezinmeye (Tab tu\u015fu ile odaklanma, Enter tu\u015fu ile t\u0131klama) uygun \u015fekilde tasarlanm\u0131\u015ft\u0131r. Ancak, \u00f6zel bir navigasyon bile\u015feni olu\u015ftururken veya <code>Link<\/code> bile\u015fenini sarmalarken, bu i\u015flevselli\u011fi bozmad\u0131\u011f\u0131n\u0131zdan emin olun. Kullan\u0131c\u0131lar\u0131n yaln\u0131zca klavye kullanarak sitenizde tamamen gezinebildi\u011finden emin olun.<br \/>\n3.  <strong>Odak Y\u00f6netimi:<\/strong> Bir <code>Link<\/code> bile\u015fenine t\u0131kland\u0131\u011f\u0131nda, Gatsby yeni sayfan\u0131n i\u00e7eri\u011fine odaklanmay\u0131 otomatik olarak y\u00f6netir. Bu, ekran okuyucular\u0131n ve klavye kullan\u0131c\u0131lar\u0131n\u0131n yeni sayfan\u0131n i\u00e7eri\u011fini hemen alg\u0131lamas\u0131na yard\u0131mc\u0131 olur. \u00d6zel bir y\u00f6nlendirme mant\u0131\u011f\u0131 uyguluyorsan\u0131z, yeni sayfa y\u00fcklendi\u011finde oda\u011f\u0131 sayfa ba\u015fl\u0131\u011f\u0131na veya ana i\u00e7eri\u011fe ta\u015f\u0131d\u0131\u011f\u0131n\u0131zdan emin olun.<br \/>\n4.  <strong><code>aria-label<\/code> Kullan\u0131m\u0131:<\/strong> Ba\u011flant\u0131 metninin g\u00f6rsel olarak k\u0131sa olmas\u0131 gerekti\u011fi ancak daha fazla ba\u011flam gerektirdi\u011fi durumlarda <code>aria-label<\/code> \u00f6zniteli\u011fini kullanabilirsiniz. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-jsx\"><Link to=\"\/profile\/john-doe\" aria-label=\"John Doe'nun profil sayfas\u0131na git\">JD<\/Link><\/code><\/pre>\n<p>    Bu, ekran okuyucular i\u00e7in daha zengin bir a\u00e7\u0131klama sa\u011flar.<\/p>\n<p>Gatsby <code>Link<\/code> bile\u015feni, do\u011fru kullan\u0131ld\u0131\u011f\u0131nda hem SEO hem de eri\u015filebilirlik a\u00e7\u0131s\u0131ndan sa\u011flam bir temel sunar. Bu ipu\u00e7lar\u0131n\u0131 uygulayarak, daha geni\u015f bir kitleye ula\u015fan ve herkes i\u00e7in kullan\u0131labilir olan y\u00fcksek performansl\u0131 bir web sitesi olu\u015fturabilirsiniz.<\/p>\n<h3>Yayg\u0131n Hatalar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>Gatsby <code>Link<\/code> bile\u015fenini kullan\u0131rken geli\u015ftiricilerin s\u0131k\u00e7a kar\u015f\u0131la\u015ft\u0131\u011f\u0131 baz\u0131 hatalar ve bunlar\u0131n nas\u0131l \u00e7\u00f6z\u00fclebilece\u011fi a\u015fa\u011f\u0131da listelenmi\u015ftir:<\/p>\n<p>1.  <strong>Dahili Ba\u011flant\u0131lar \u0130\u00e7in <code><a><\/code> Etiketi Kullanmak:<\/strong><br \/>\n    *   <strong>Hata:<\/strong> Gatsby projenizin i\u00e7inde ba\u015fka bir Gatsby sayfas\u0131na gitmek i\u00e7in <code><a href=\"\/about\">Hakk\u0131m\u0131zda<\/a><\/code> \u015feklinde standart HTML <code><a><\/code> etiketi kullanmak.<br \/>\n    *   <strong>Neden Hata:<\/strong> Bu, tam bir sayfa yeniden y\u00fcklemesine neden olur, Gatsby&#8217;nin prefetching ve client-side navigasyon optimizasyonlar\u0131ndan yararlanamazs\u0131n\u0131z. Performans d\u00fc\u015f\u00fc\u015f\u00fc ve SPA benzeri deneyimin kayb\u0131 ya\u015fan\u0131r.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Dahili Gatsby sayfalar\u0131 aras\u0131nda gezinmek i\u00e7in her zaman <code><Link to=\"\/about\">Hakk\u0131m\u0131zda<\/Link><\/code> kullan\u0131n.<\/p>\n<p>2.  <strong><code>Link<\/code> Bile\u015fenini \u0130\u00e7e Aktarmay\u0131 Unutmak:<\/strong><br \/>\n    *   <strong>Hata:<\/strong> <code>Link<\/code> bile\u015fenini kullanmaya \u00e7al\u0131\u015f\u0131rken <code>Link is not defined<\/code> gibi bir hata almak.<br \/>\n    *   <strong>Neden Hata:<\/strong> <code>Link<\/code> bir React bile\u015feni oldu\u011fu i\u00e7in kullan\u0131lmadan \u00f6nce i\u00e7e aktar\u0131lmas\u0131 gerekir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Bile\u015feni kulland\u0131\u011f\u0131n\u0131z dosyan\u0131n en \u00fcst\u00fcne <code>import { Link } from 'gatsby';<\/code> ekleyin. Ayn\u0131 durum <code>navigate<\/code> fonksiyonu i\u00e7in de ge\u00e7erlidir.<\/p>\n<p>3.  <strong><code>to<\/code> Prop&#8217;unda Yanl\u0131\u015f Yollar Belirtmek:<\/strong><br \/>\n    *   <strong>Hata:<\/strong> <code>to<\/code> prop&#8217;unda var olmayan bir yola i\u015faret etmek veya yaz\u0131m hatas\u0131 yapmak (\u00f6rn. <code><Link to=\"\/aboot\">Hakk\u0131m\u0131zda<\/Link><\/code>).<br \/>\n    *   <strong>Neden Hata:<\/strong> Bu, kullan\u0131c\u0131n\u0131n &#8220;404 Not Found&#8221; sayfas\u0131na y\u00f6nlendirilmesine neden olur.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Yollar\u0131n do\u011fru oldu\u011fundan ve Gatsby&#8217;nin dosya sistemi tabanl\u0131 y\u00f6nlendirme kurallar\u0131na uydu\u011fundan emin olun. Geli\u015ftirme modunda (<code>gatsby develop<\/code>), Gatsby genellikle var olmayan yollar\u0131 tespit etmenize yard\u0131mc\u0131 olacak uyar\u0131lar verir.<\/p>\n<p>4.  <strong><code>activeClassName<\/code> ve <code>partiallyActive<\/code> Kar\u0131\u015f\u0131kl\u0131\u011f\u0131:<\/strong><br \/>\n    *   <strong>Hata:<\/strong> Bir men\u00fcde <code>\/blog<\/code> ba\u011flant\u0131s\u0131n\u0131n, <code>\/blog\/post-1<\/code> sayfas\u0131nda aktif olmas\u0131n\u0131 beklerken olmamas\u0131.<br \/>\n    *   <strong>Neden Hata:<\/strong> <code>activeClassName<\/code> varsay\u0131lan olarak tam yol e\u015fle\u015fmesi gerektirir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Hiyerar\u015fik yap\u0131larda k\u0131smi e\u015fle\u015fmeleri vurgulamak i\u00e7in <code>partiallyActive={true}<\/code> prop&#8217;unu kullan\u0131n: <code><Link to=\"\/blog\" activeClassName=\"active\" partiallyActive={true}>Blog<\/Link><\/code>.<\/p>\n<p>5.  <strong><code>Link<\/code> \u0130\u00e7ine <code><a><\/code> Etiketi Koymak:<\/strong><br \/>\n    *   <strong>Hata:<\/strong> <code><Link to=\"\/page\"><a>Metin<\/a><\/Link><\/code> gibi i\u00e7 i\u00e7e etiketleme.<br \/>\n    *   <strong>Neden Hata:<\/strong> <code>Link<\/code> bile\u015feni zaten bir <code><a><\/code> etiketi render eder. \u0130\u00e7 i\u00e7e <code><a><\/code> etiketleri ge\u00e7ersiz HTML&#8217;dir ve taray\u0131c\u0131 veya eri\u015filebilirlik ara\u00e7lar\u0131 i\u00e7in sorunlara yol a\u00e7abilir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> <code>Link<\/code> bile\u015feninin \u00e7ocuklar\u0131 do\u011frudan metin veya ba\u015fka bir React bile\u015feni olmal\u0131d\u0131r: <code><Link to=\"\/page\">Metin<\/Link><\/code>.<\/p>\n<p>6.  <strong><code>Link<\/code> Bile\u015fenine Yanl\u0131\u015f Prop&#8217;lar Ge\u00e7irmek:<\/strong><br \/>\n    *   <strong>Hata:<\/strong> <code>Link<\/code> bile\u015fenine <code>href<\/code> prop&#8217;u ge\u00e7irmeye \u00e7al\u0131\u015fmak veya <code>Link<\/code> i\u00e7in tasarlanmam\u0131\u015f di\u011fer prop&#8217;lar\u0131 kullanmak.<br \/>\n    *   <strong>Neden Hata:<\/strong> <code>Link<\/code> bile\u015feni <code>to<\/code> prop&#8217;unu bekler, <code>href<\/code> de\u011fil. Tan\u0131ms\u0131z prop&#8217;lar genellikle g\u00f6z ard\u0131 edilir veya React uyar\u0131lar\u0131 verir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> <code>Link<\/code> bile\u015feninin yaln\u0131zca destekledi\u011fi prop&#8217;lar\u0131 ( <code>to<\/code>, <code>activeClassName<\/code>, <code>activeStyle<\/code>, <code>state<\/code>, <code>replace<\/code>, <code>partiallyActive<\/code>, <code>getProps<\/code> ve standart HTML <code><a><\/code> prop&#8217;lar\u0131) kullan\u0131n.<\/p>\n<p>Bu yayg\u0131n hatalardan ka\u00e7\u0131narak, Gatsby <code>Link<\/code> bile\u015fenini daha verimli ve sorunsuz bir \u015fekilde kullanabilir, sitenizin performans\u0131n\u0131 ve kullan\u0131c\u0131 deneyimini en \u00fcst d\u00fczeye \u00e7\u0131karabilirsiniz.<\/p>\n<h3>\u00d6rnek Uygulama: Basit Bir Navigasyon Men\u00fcs\u00fc<\/h3>\n<p>\u015eimdiye kadar \u00f6\u011frendiklerimizi peki\u015ftirmek i\u00e7in Gatsby <code>Link<\/code> bile\u015fenini kullanarak basit ama i\u015flevsel bir navigasyon men\u00fcs\u00fc olu\u015ftural\u0131m. Bu men\u00fc, <code>activeClassName<\/code> ve <code>partiallyActive<\/code> \u00f6zelliklerini de g\u00f6sterecektir.<\/p>\n<p>\u00d6ncelikle, <code>src\/components\/Header.js<\/code> ad\u0131nda bir bile\u015fen olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-jsx\">\/\/ src\/components\/Header.js\nimport React from 'react';\nimport { Link } from 'gatsby';\nimport '.\/Header.css'; \/\/ Men\u00fc stil dosyas\u0131n\u0131 i\u00e7e aktar\u0131yoruz\n\nconst Header = () => {\n  return (\n    <header className=\"site-header\">\n      <div className=\"container\">\n        <Link to=\"\/\" className=\"site-logo\">\n          Gatsby Site\n        <\/Link>\n        <nav className=\"main-nav\">\n          <ul>\n            <li>\n              <Link \n                to=\"\/\" \n                activeClassName=\"active-nav-item\" \n                partiallyActive={true} \/\/ Ana sayfa genellikle k\u0131smen aktif kabul edilebilir\n              >\n                Ana Sayfa\n              <\/Link>\n            <\/li>\n            <li>\n              <Link \n                to=\"\/about\" \n                activeClassName=\"active-nav-item\"\n              >\n                Hakk\u0131m\u0131zda\n              <\/Link>\n            <\/li>\n            <li>\n              <Link \n                to=\"\/blog\" \n                activeClassName=\"active-nav-item\" \n                partiallyActive={true} \/\/ Blog sayfas\u0131n\u0131n alt\u0131ndaki yaz\u0131lar i\u00e7in de aktif olsun\n              >\n                Blog\n              <\/Link>\n            <\/li>\n            <li>\n              <Link \n                to=\"\/contact\" \n                activeClassName=\"active-nav-item\"\n              >\n                \u0130leti\u015fim\n              <\/Link>\n            <\/li>\n            <li>\n              {\/<em> D\u0131\u015f ba\u011flant\u0131 i\u00e7in <a> etiketi kullan\u0131yoruz <\/em>\/}\n              <a \n                href=\"https:\/\/github.com\/gatsbyjs\/gatsby\" \n                target=\"_blank\" \n                rel=\"noopener noreferrer\"\n              >\n                GitHub\n              <\/a>\n            <\/li>\n          <\/ul>\n        <\/nav>\n      <\/div>\n    <\/header>\n  );\n};\n\nexport default Header;<\/code><\/pre>\n<p>\u015eimdi de <code>src\/components\/Header.css<\/code> stil dosyas\u0131n\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-css\">\/<em> src\/components\/Header.css <\/em>\/\n.site-header {\n  background-color: #333;\n  padding: 1rem 0;\n  color: #fff;\n}\n\n.site-header .container {\n  max-width: 960px;\n  margin: 0 auto;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}\n\n.site-logo {\n  color: #fff;\n  text-decoration: none;\n  font-size: 1.5rem;\n  font-weight: bold;\n}\n\n.main-nav ul {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n  display: flex;\n}\n\n.main-nav li {\n  margin-left: 20px;\n}\n\n.main-nav a {\n  color: #fff;\n  text-decoration: none;\n  padding: 5px 0;\n  transition: border-bottom 0.3s ease;\n}\n\n.main-nav a:hover {\n  border-bottom: 2px solid #007bff;\n}\n\n\/<em> Aktif link stili <\/em>\/\n.main-nav .active-nav-item {\n  border-bottom: 2px solid #28a745; \/<em> Ye\u015fil bir vurgu <\/em>\/\n  font-weight: bold;\n}<\/code><\/pre>\n<p>Son olarak, bu <code>Header<\/code> bile\u015fenini sitenizin genel d\u00fczenine (<code>src\/components\/layout.js<\/code> gibi) dahil edebilirsiniz:<\/p>\n<pre><code class=\"language-jsx\">\/\/ src\/components\/layout.js\nimport React from 'react';\nimport Header from '.\/Header'; \/\/ Header bile\u015fenini i\u00e7e aktar\n\nconst Layout = ({ children }) => {\n  return (\n    <>\n      <Header \/>\n      <main>{children}<\/main>\n      <footer>\n        <p>\u00a9 {new Date().getFullYear()} Gatsby Site. T\u00fcm Haklar\u0131 Sakl\u0131d\u0131r.<\/p>\n      <\/footer>\n    <\/>\n  );\n};\n\nexport default Layout;<\/code><\/pre>\n<p>Bu \u00f6rnekte, <code>Link<\/code> bile\u015fenlerinin nas\u0131l kullan\u0131ld\u0131\u011f\u0131n\u0131, <code>activeClassName<\/code> ile aktif ba\u011flant\u0131lar\u0131n nas\u0131l vurguland\u0131\u011f\u0131n\u0131 ve <code>partiallyActive<\/code> ile hiyerar\u015fik yap\u0131lar\u0131n nas\u0131l desteklendi\u011fini g\u00f6rebilirsiniz. Ayr\u0131ca, d\u0131\u015f ba\u011flant\u0131lar i\u00e7in standart <code><a><\/code> etiketinin nas\u0131l kullan\u0131lmas\u0131 gerekti\u011fi de g\u00f6sterilmi\u015ftir. Bu yap\u0131, Gatsby siteleriniz i\u00e7in temiz, performansl\u0131 ve eri\u015filebilir bir navigasyon men\u00fcs\u00fc olu\u015fturman\u0131n temelini olu\u015fturur.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Gatsby <code>Link<\/code> bile\u015feni, modern web geli\u015ftirme d\u00fcnyas\u0131nda Gatsby projeleri i\u00e7in sayfalar aras\u0131 navigasyonun temelini olu\u015fturan kritik bir ara\u00e7t\u0131r. Bu makalede, <code>Link<\/code> bile\u015feninin ne oldu\u011funu, Gatsby&#8217;nin performans odakl\u0131 mimarisi i\u00e7inde neden bu kadar \u00f6nemli oldu\u011funu ve standart HTML <code><a><\/code> etiketine g\u00f6re sundu\u011fu avantajlar\u0131 detayl\u0131ca inceledik.<\/p>\n<p><code>Link<\/code> bile\u015feninin temel kullan\u0131m\u0131, <code>to<\/code> prop&#8217;u arac\u0131l\u0131\u011f\u0131yla dahili yollar\u0131n belirtilmesiyle ba\u015flar ve <code>activeClassName<\/code>, <code>activeStyle<\/code>, <code>partiallyActive<\/code>, <code>state<\/code> ve <code>replace<\/code> gibi geli\u015fmi\u015f prop&#8217;larla zenginle\u015ftirilir. Bu prop&#8217;lar, kullan\u0131c\u0131 aray\u00fcz\u00fcn\u00fc daha dinamik, etkile\u015fimli ve bilgilendirici hale getirme konusunda geli\u015ftiricilere b\u00fcy\u00fck esneklik sa\u011flar. Ayr\u0131ca, <code>Link<\/code> bile\u015feninin yetersiz kald\u0131\u011f\u0131 durumlarda, programatik y\u00f6nlendirme i\u00e7in <code>navigate<\/code> fonksiyonunun nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 ve d\u0131\u015f ba\u011flant\u0131lar veya \u00f6zel protokoller i\u00e7in geleneksel <code><a><\/code> etiketinin ne zaman tercih edilmesi gerekti\u011fini de ele ald\u0131k.<\/p>\n<p>Gatsby&#8217;nin prefetching mekanizmas\u0131 sayesinde <code>Link<\/code> bile\u015feni, kullan\u0131c\u0131lar\u0131n sayfalar aras\u0131nda neredeyse an\u0131nda ge\u00e7i\u015f yapmas\u0131n\u0131 sa\u011flayarak ola\u011fan\u00fcst\u00fc bir kullan\u0131c\u0131 deneyimi sunar. Bu h\u0131zl\u0131 gezinme, sitenizin SEO performans\u0131n\u0131 olumlu etkilerken, do\u011fru ba\u011flant\u0131 metinleri ve eri\u015filebilirlik uygulamalar\u0131yla birle\u015fti\u011finde sitenizi daha geni\u015f bir kitle i\u00e7in ula\u015f\u0131labilir ve kullan\u0131labilir hale getirir.<\/p>\n<p>Son olarak, <code>Link<\/code> bile\u015fenini kullan\u0131rken kar\u015f\u0131la\u015f\u0131labilecek yayg\u0131n hatalar\u0131 ve bu hatalardan nas\u0131l ka\u00e7\u0131n\u0131laca\u011f\u0131n\u0131 \u00f6\u011frendik. Bu bilgi birikimiyle, Gatsby projelerinizde hem h\u0131zl\u0131 hem de kullan\u0131c\u0131 dostu navigasyon sistemleri tasarlayabilir ve uygulayabilirsiniz. Gatsby&#8217;nin g\u00fcc\u00fcn\u00fc tam olarak kullanmak i\u00e7in <code>Link<\/code> bile\u015fenini do\u011fru ve bilin\u00e7li bir \u015fekilde entegre etmek, modern web siteleri olu\u015fturman\u0131n vazge\u00e7ilmez bir par\u00e7as\u0131d\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Gatsby Link Bile\u015feni ile Sayfalar Aras\u0131 Navigasyon\nGeli\u015fen web teknolojileriyle birlikte, kullan\u0131c\u0131 deneyimi ve web sitelerinin performans\u0131 her","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-38333","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Gatsby Link Bile\u015feni ile Sayfalar Aras\u0131 Navigasyon - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Gatsby Link Bile\u015feni ile Sayfalar Aras\u0131 Navigasyon\" \/>\n<meta property=\"og:description\" content=\"Gatsby Link Bile\u015feni ile Sayfalar Aras\u0131 Navigasyon Geli\u015fen web teknolojileriyle birlikte, kullan\u0131c\u0131 deneyimi ve web sitelerinin performans\u0131 her\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-28T23:40:57+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"23 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Gatsby Link Bile\u015feni ile Sayfalar Aras\u0131 Navigasyon\",\"datePublished\":\"2026-01-28T23:40:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/\"},\"wordCount\":3907,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/\",\"name\":\"Gatsby Link Bile\u015feni ile Sayfalar Aras\u0131 Navigasyon - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-28T23:40:57+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Gatsby Link Bile\u015feni ile Sayfalar Aras\u0131 Navigasyon\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Gatsby Link Bile\u015feni ile Sayfalar Aras\u0131 Navigasyon - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/","og_locale":"tr_TR","og_type":"article","og_title":"Gatsby Link Bile\u015feni ile Sayfalar Aras\u0131 Navigasyon","og_description":"Gatsby Link Bile\u015feni ile Sayfalar Aras\u0131 Navigasyon Geli\u015fen web teknolojileriyle birlikte, kullan\u0131c\u0131 deneyimi ve web sitelerinin performans\u0131 her","og_url":"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-28T23:40:57+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"23 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Gatsby Link Bile\u015feni ile Sayfalar Aras\u0131 Navigasyon","datePublished":"2026-01-28T23:40:57+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/"},"wordCount":3907,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/","url":"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/","name":"Gatsby Link Bile\u015feni ile Sayfalar Aras\u0131 Navigasyon - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-28T23:40:57+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/gatsby-link-bileseni-ile-sayfalar-arasi-navigasyon\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Gatsby Link Bile\u015feni ile Sayfalar Aras\u0131 Navigasyon"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=38333"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38333\/revisions"}],"predecessor-version":[{"id":38334,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38333\/revisions\/38334"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}