{"id":23765,"date":"2025-06-11T21:30:15","date_gmt":"2025-06-11T18:30:15","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/"},"modified":"2025-06-11T21:30:15","modified_gmt":"2025-06-11T18:30:15","slug":"react-ve-intersectionobserver-ile-modern-scrollspy-olusturma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/","title":{"rendered":"React ve IntersectionObserver ile Modern ScrollSpy Olu\u015fturma"},"content":{"rendered":"<p><body><\/p>\n<p>React ve IntersectionObserver ile Modern ScrollSpy Olu\u015fturma<\/p>\n<p>Merhaba! Bu yaz\u0131da, React ve IntersectionObserver API&#8217;sini kullanarak modern ve performansl\u0131 bir scrollspy bile\u015feni nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m.  Klasik scrollspy y\u00f6ntemlerinden farkl\u0131 olarak, IntersectionObserver performans a\u00e7\u0131s\u0131ndan \u00e7ok daha avantajl\u0131d\u0131r.  \u00d6ncelikle, scrollspy&#8217;\u0131n ne oldu\u011funu ve neden IntersectionObserver&#8217;\u0131 tercih etmemiz gerekti\u011fini inceleyelim.<\/p>\n<p>Scrollspy, web sayfalar\u0131nda gezinmeyi kolayla\u015ft\u0131rmak i\u00e7in kullan\u0131lan bir \u00f6zelliktir.  Kullan\u0131c\u0131 sayfan\u0131n a\u015fa\u011f\u0131s\u0131na do\u011fru kayd\u0131rd\u0131\u011f\u0131nda, belirli b\u00f6l\u00fcmlere kar\u015f\u0131l\u0131k gelen men\u00fc \u00f6\u011feleri aktif hale gelir.  Bu sayede, kullan\u0131c\u0131lar sayfan\u0131n hangi b\u00f6l\u00fcm\u00fcnde olduklar\u0131n\u0131 kolayca takip edebilirler. Ancak, geleneksel scrollspy uygulamalar\u0131, performans sorunlar\u0131na yol a\u00e7abilir.  \u00d6zellikle uzun sayfalarda, s\u00fcrekli olarak pencere kayd\u0131rma olaylar\u0131n\u0131 dinlemek, kaynak t\u00fcketimine neden olabilir.<\/p>\n<p>\u0130\u015fte bu noktada IntersectionObserver devreye giriyor.  IntersectionObserver API&#8217;s\u0131, bir hedef elementin viewport ile kesi\u015fimini izlemek i\u00e7in tasarlanm\u0131\u015ft\u0131r.  Bu sayede, yaln\u0131zca g\u00f6r\u00fcn\u00fcr b\u00f6l\u00fcmlere kar\u015f\u0131l\u0131k gelen men\u00fc \u00f6\u011felerini g\u00fcncellememiz yeterli olur.  Bu da, performans a\u00e7\u0131s\u0131ndan b\u00fcy\u00fck bir iyile\u015fme sa\u011flar.<\/p>\n<h2>IntersectionObserver ile Scrollspy Bile\u015feni Olu\u015fturma<\/h2>\n<p>\u015eimdi, React ile IntersectionObserver kullanarak bir scrollspy bile\u015feni olu\u015fturaca\u011f\u0131z.  Bu bile\u015fen, sayfadaki b\u00f6l\u00fcmleri ve bunlara kar\u015f\u0131l\u0131k gelen men\u00fc \u00f6\u011felerini takip edecek ve aktif men\u00fc \u00f6\u011felerini dinamik olarak g\u00fcncelleyecektir.  \u00d6ncelikle, gerekli ba\u011f\u0131ml\u0131l\u0131klar\u0131 eklemeliyiz.<\/p>\n<pre><code>\n\/\/ React bile\u015fenimizin yap\u0131s\u0131\nimport React, { useState, useEffect, useRef } from 'react';\n\nconst ScrollSpy = () => {\n  const [activeSection, setActiveSection] = useState(null);\n  const sections = useRef([]);\n\n  const handleIntersection = (entries, observer) => {\n    entries.forEach(entry => {\n      if (entry.isIntersecting) {\n        setActiveSection(entry.target.id);\n      }\n    });\n  };\n\n  useEffect(() => {\n    const observer = new IntersectionObserver(handleIntersection);\n\n    sections.current.forEach(section => {\n      observer.observe(section);\n    });\n\n    return () => observer.disconnect();\n  }, []);\n\n  return (\n    &lt;div&gt;\n      &lt;nav&gt;\n        &lt;ul&gt;\n          {sections.current.map(section => (\n            &lt;li key={section.id} className={activeSection === section.id ? 'active' : ''}&gt;\n              &lt;a href={#${section.id}}&gt;{section.id}&lt;\/a&gt;\n            &lt;\/li&gt;\n          ))}\n        &lt;\/ul&gt;\n      &lt;\/nav&gt;\n      {sections.current.map(section => (\n        &lt;section key={section.id} id={section.id} ref={(el) => { sections.current.push(el); }}&gt;\n          &lt;h2&gt;{section.id}&lt;\/h2&gt;\n          &lt;p&gt;Bu {section.id} b\u00f6l\u00fcm\u00fcn\u00fcn i\u00e7eri\u011fi&lt;\/p&gt;\n        &lt;\/section&gt;\n      ))}\n    &lt;\/div&gt;\n  );\n};\n\nexport default ScrollSpy;\n<\/code><\/pre>\n<p>Bu kodda, \u00f6ncelikle IntersectionObserver \u00f6rne\u011fini olu\u015fturuyoruz. Ard\u0131ndan, her bir section elementi i\u00e7in observer&#8217;\u0131 \u00e7al\u0131\u015ft\u0131r\u0131yoruz.  handleIntersection fonksiyonu, kesi\u015fim durumunu kontrol eder ve aktif section&#8217;\u0131 g\u00fcnceller.  Sonu\u00e7 olarak, performansl\u0131 ve modern bir scrollspy deneyimi elde ederiz.<\/p>\n<p>Bu \u00f6rnek, basit bir scrollspy olu\u015fturmay\u0131 g\u00f6stermektedir.  Daha karma\u015f\u0131k uygulamalar i\u00e7in, bu kodu \u00f6zelle\u015ftirebilirsiniz.  \u00d6rne\u011fin, farkl\u0131 animasyonlar ekleyebilir veya daha geli\u015fmi\u015f kullan\u0131c\u0131 etkile\u015fimleri olu\u015fturabilirsiniz.  Daha detayl\u0131 bilgi ve \u00f6rnekler i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">fatihsoysal.com<\/a> adresini ziyaret edebilirsiniz.<\/p>\n<p>Umar\u0131m bu makale, React ve IntersectionObserver ile modern scrollspy olu\u015fturma konusunda size yard\u0131mc\u0131 olmu\u015ftur.  Herhangi bir sorunuz varsa, yorum b\u00f6l\u00fcm\u00fcnde bana ula\u015fabilirsiniz.<\/p>\n<p>#Etiketler: React, IntersectionObserver, Scrollspy, JavaScript, Web Geli\u015ftirme, Performans, \u00d6rnek Kod, Tutorial, Fatih Soysal<\/p>\n<p><\/body><br \/>\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"React ve IntersectionObserver ile Modern ScrollSpy Olu\u015fturma Merhaba! Bu yaz\u0131da, React ve IntersectionObserver API&#8217;sini kullanarak modern ve performansl\u0131&hellip;","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-23765","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>React ve IntersectionObserver ile Modern ScrollSpy Olu\u015fturma<\/title>\n<meta name=\"description\" content=\"Merhaba! Bu yaz\u0131da, React ve IntersectionObserver API&#039;sini kullanarak modern ve performansl\u0131 bir scrollspy bile\u015feni nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m. Klasik scrollspy y\u00f6ntemlerinden farkl\u0131 olarak, IntersectionObserver performans a\u00e7\u0131s\u0131ndan \u00e7ok daha avantajl\u0131d\u0131r. \u00d6ncelikle, scrollspy&#039;\u0131n ne oldu\u011funu ve neden IntersectionObserver&#039;\u0131 tercih etmemiz gerekti\u011fini inceleyelim.\" \/>\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\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"React ve IntersectionObserver ile Modern ScrollSpy Olu\u015fturma\" \/>\n<meta property=\"og:description\" content=\"Merhaba! Bu yaz\u0131da, React ve IntersectionObserver API&#039;sini kullanarak modern ve performansl\u0131 bir scrollspy bile\u015feni nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m. Klasik scrollspy y\u00f6ntemlerinden farkl\u0131 olarak, IntersectionObserver performans a\u00e7\u0131s\u0131ndan \u00e7ok daha avantajl\u0131d\u0131r. \u00d6ncelikle, scrollspy&#039;\u0131n ne oldu\u011funu ve neden IntersectionObserver&#039;\u0131 tercih etmemiz gerekti\u011fini inceleyelim.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-11T18:30:15+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=\"3 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"React ve IntersectionObserver ile Modern ScrollSpy Olu\u015fturma\",\"datePublished\":\"2025-06-11T18:30:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/\"},\"wordCount\":399,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/\",\"name\":\"React ve IntersectionObserver ile Modern ScrollSpy Olu\u015fturma\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-06-11T18:30:15+00:00\",\"description\":\"Merhaba! Bu yaz\u0131da, React ve IntersectionObserver API'sini kullanarak modern ve performansl\u0131 bir scrollspy bile\u015feni nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m. Klasik scrollspy y\u00f6ntemlerinden farkl\u0131 olarak, IntersectionObserver performans a\u00e7\u0131s\u0131ndan \u00e7ok daha avantajl\u0131d\u0131r. \u00d6ncelikle, scrollspy'\u0131n ne oldu\u011funu ve neden IntersectionObserver'\u0131 tercih etmemiz gerekti\u011fini inceleyelim.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"React ve IntersectionObserver ile Modern ScrollSpy Olu\u015fturma\"}]},{\"@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":"React ve IntersectionObserver ile Modern ScrollSpy Olu\u015fturma","description":"Merhaba! Bu yaz\u0131da, React ve IntersectionObserver API'sini kullanarak modern ve performansl\u0131 bir scrollspy bile\u015feni nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m. Klasik scrollspy y\u00f6ntemlerinden farkl\u0131 olarak, IntersectionObserver performans a\u00e7\u0131s\u0131ndan \u00e7ok daha avantajl\u0131d\u0131r. \u00d6ncelikle, scrollspy'\u0131n ne oldu\u011funu ve neden IntersectionObserver'\u0131 tercih etmemiz gerekti\u011fini inceleyelim.","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\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/","og_locale":"tr_TR","og_type":"article","og_title":"React ve IntersectionObserver ile Modern ScrollSpy Olu\u015fturma","og_description":"Merhaba! Bu yaz\u0131da, React ve IntersectionObserver API'sini kullanarak modern ve performansl\u0131 bir scrollspy bile\u015feni nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m. Klasik scrollspy y\u00f6ntemlerinden farkl\u0131 olarak, IntersectionObserver performans a\u00e7\u0131s\u0131ndan \u00e7ok daha avantajl\u0131d\u0131r. \u00d6ncelikle, scrollspy'\u0131n ne oldu\u011funu ve neden IntersectionObserver'\u0131 tercih etmemiz gerekti\u011fini inceleyelim.","og_url":"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-06-11T18:30:15+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"3 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"React ve IntersectionObserver ile Modern ScrollSpy Olu\u015fturma","datePublished":"2025-06-11T18:30:15+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/"},"wordCount":399,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/","url":"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/","name":"React ve IntersectionObserver ile Modern ScrollSpy Olu\u015fturma","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-06-11T18:30:15+00:00","description":"Merhaba! Bu yaz\u0131da, React ve IntersectionObserver API'sini kullanarak modern ve performansl\u0131 bir scrollspy bile\u015feni nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m. Klasik scrollspy y\u00f6ntemlerinden farkl\u0131 olarak, IntersectionObserver performans a\u00e7\u0131s\u0131ndan \u00e7ok daha avantajl\u0131d\u0131r. \u00d6ncelikle, scrollspy'\u0131n ne oldu\u011funu ve neden IntersectionObserver'\u0131 tercih etmemiz gerekti\u011fini inceleyelim.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/react-ve-intersectionobserver-ile-modern-scrollspy-olusturma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"React ve IntersectionObserver ile Modern ScrollSpy Olu\u015fturma"}]},{"@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\/23765","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=23765"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/23765\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=23765"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=23765"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=23765"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}