{"id":17582,"date":"2025-04-09T00:15:13","date_gmt":"2025-04-08T21:15:13","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/"},"modified":"2025-04-09T00:15:13","modified_gmt":"2025-04-08T21:15:13","slug":"reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/","title":{"rendered":"React&#8217;te Prop Drilling&#8217;den Context API ve TypeScript ile Kurtulma"},"content":{"rendered":"<p>React&#8217;te Prop Drilling&#8217;den Context API ve TypeScript ile Kurtulma<\/p>\n<p>Merhaba!  Fatih Soysal olarak, bu yaz\u0131da React uygulamalar\u0131n\u0131zda s\u0131k\u00e7a kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z prop drilling sorununu nas\u0131l \u00e7\u00f6zebilece\u011finizi, Context API ve TypeScript&#8217;in g\u00fcc\u00fcnden faydalanarak ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m.  Prop drilling, verilerin bile\u015fen a\u011fac\u0131nda gereksiz yere yukar\u0131dan a\u015fa\u011f\u0131ya aktar\u0131lmas\u0131 anlam\u0131na gelir.  Bu durum, kodun okunabilirli\u011fini ve s\u00fcrd\u00fcr\u00fclebilirli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r.  Neyse ki, Context API bu soruna elegant bir \u00e7\u00f6z\u00fcm sunar.<\/p>\n<h2>Context API Nedir ve Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/h2>\n<p>React&#8217;in Context API&#8217;si, verileri uygulama bile\u015fenleri aras\u0131nda payla\u015fmak i\u00e7in tasarlanm\u0131\u015ft\u0131r.  Bu sayede, verileri her bir bile\u015fene tek tek prop olarak ge\u00e7irmek zorunda kalmazs\u0131n\u0131z.  Context, bir de\u011fer (genellikle bir nesne) sa\u011flar ve bu de\u011feri kullanan bile\u015fenler, bu de\u011fere abone olarak eri\u015fim sa\u011flayabilir.  TypeScript&#8217;in tipi kontrol mekanizmalar\u0131yla birlikte kullan\u0131ld\u0131\u011f\u0131nda, Context API daha g\u00fcvenilir ve hata ay\u0131klamas\u0131 kolay bir yap\u0131 sunar.<\/p>\n<h2>TypeScript ile G\u00fc\u00e7lendirilmi\u015f Context Olu\u015fturma<\/h2>\n<p>\u00d6ncelikle, bir Context olu\u015ftural\u0131m.  Bu \u00f6rnekte, kullan\u0131c\u0131n\u0131n oturum a\u00e7\u0131p a\u00e7mad\u0131\u011f\u0131n\u0131 ve kullan\u0131c\u0131 ad\u0131n\u0131 tutacak bir context olu\u015fturaca\u011f\u0131z:<\/p>\n<pre><code class=\"language-typescript\">\nimport { createContext, useContext, useState } from 'react';\n\ninterface AuthContextType {\n  isLoggedIn: boolean;\n  username: string | null;\n  login: (username: string) => void;\n  logout: () => void;\n}\n\nconst AuthContext = createContext<AuthContextType | null>(null);\n\nexport const AuthProvider = ({ children }: { children: React.ReactNode }) => {\n  const [isLoggedIn, setIsLoggedIn] = useState(false);\n  const [username, setUsername] = useState<string | null>(null);\n\n  const login = (username: string) => {\n    setIsLoggedIn(true);\n    setUsername(username);\n  };\n\n  const logout = () => {\n    setIsLoggedIn(false);\n    setUsername(null);\n  };\n\n  return (\n    <AuthContext.Provider value={{ isLoggedIn, username, login, logout }}>\n      {children}\n    <\/AuthContext.Provider>\n  );\n};\n\nexport const useAuth = () => {\n  const context = useContext(AuthContext);\n  if (context === null) {\n    throw new Error('useAuth hook must be used within an AuthProvider');\n  }\n  return context;\n};\n<\/code><\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi,  <code>AuthContext<\/code>&#8216;i bir interface ile tan\u0131mlayarak TypeScript&#8217;in tip g\u00fcvenli\u011fini sa\u011fl\u0131yoruz.  <code>AuthProvider<\/code>, Context&#8217;i sa\u011flayan bile\u015fendir.  <code>useAuth<\/code> hook&#8217;u ise, Context de\u011ferine eri\u015fim sa\u011flar.  Bu hook, Context&#8217;in mevcut olup olmad\u0131\u011f\u0131n\u0131 kontrol eder ve hata durumunda bir hata f\u0131rlat\u0131r.<\/p>\n<h2>Context&#8217;i Uygulamada Kullanma<\/h2>\n<p>\u015eimdi, Context&#8217;i uygulamam\u0131zda nas\u0131l kullanabilece\u011fimize bakal\u0131m.  \u00d6rne\u011fin, bir giri\u015f formu ve kullan\u0131c\u0131 profilini g\u00f6r\u00fcnt\u00fcleyen bir bile\u015fen olu\u015fturabiliriz:<\/p>\n<pre><code class=\"language-typescript\">\nimport React from 'react';\nimport { useAuth } from '.\/AuthContext';\n\nconst LoginForm = () => {\n    const { login } = useAuth();\n    \/\/ Giri\u015f formu burada\n    return <button onClick={() => login(\"Fatih\")}>Giri\u015f Yap<\/button>;\n};\n\nconst UserProfile = () => {\n    const { isLoggedIn, username } = useAuth();\n    if (isLoggedIn) {\n        return <p>Ho\u015f geldin, {username}!<\/p>;\n    } else {\n        return <p>L\u00fctfen giri\u015f yap\u0131n.<\/p>;\n    }\n};\n<\/code><\/pre>\n<p>Hem <code>LoginForm<\/code> hem de <code>UserProfile<\/code> bile\u015fenleri, prop drilling olmadan Context&#8217;ten de\u011ferleri al\u0131rlar.  Bu sayede, kodumuz daha temiz ve anla\u015f\u0131l\u0131r hale gelir.  Ayr\u0131ca, TypeScript&#8217;in sa\u011flad\u0131\u011f\u0131 tip g\u00fcvenli\u011fi sayesinde, hatalar\u0131 daha erken yakalayabiliriz.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Context API ve TypeScript, React uygulamalar\u0131n\u0131zda prop drilling sorununu \u00e7\u00f6zmek i\u00e7in g\u00fc\u00e7l\u00fc bir ikilidir.  Bu yakla\u015f\u0131m, kodun okunabilirli\u011fini, s\u00fcrd\u00fcr\u00fclebilirli\u011fini ve g\u00fcvenilirli\u011fini art\u0131r\u0131r.  Daha fazla React geli\u015ftirme ipucu ve \u00f6rne\u011fi i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">fatihsoysal.com<\/a> sitesini ziyaret edebilirsiniz.  Umar\u0131m bu makale size yard\u0131mc\u0131 olmu\u015ftur!<\/p>\n<p>Faydal\u0131 bulabilece\u011finiz baz\u0131 kaynaklar:<\/p>\n<ul>\n<li><a href=\"https:\/\/reactjs.org\/docs\/context.html\">React Context API Dok\u00fcmanlar\u0131<\/a><\/li>\n<li><a href=\"https:\/\/www.typescriptlang.org\/\">TypeScript Dok\u00fcmanlar\u0131<\/a><\/li>\n<\/ul>\n<p>#Etiketler: React, Context API, TypeScript, Prop Drilling, Bile\u015fen, Uygulama, Geli\u015ftirme, Kod, Okunabilirlik, S\u00fcrd\u00fcr\u00fclebilirlik, G\u00fcvenilirlik, Tip G\u00fcvenli\u011fi,  Fatih Soysal<\/p>\n","protected":false},"excerpt":{"rendered":"React&#8217;te Prop Drilling&#8217;den Context API ve TypeScript ile Kurtulma Merhaba! Fatih Soysal olarak, bu yaz\u0131da React uygulamalar\u0131n\u0131zda s\u0131k\u00e7a&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-17582","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&#039;te Prop Drilling&#039;den Context API ve TypeScript ile Kurtulma<\/title>\n<meta name=\"description\" content=\"Merhaba! Fatih Soysal olarak, bu yaz\u0131da React uygulamalar\u0131n\u0131zda s\u0131k\u00e7a kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z prop drilling sorununu nas\u0131l \u00e7\u00f6zebilece\u011finizi, Context API ve TypeScript&#039;in g\u00fcc\u00fcnden faydalanarak ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m. Prop drilling, verilerin bile\u015fen a\u011fac\u0131nda gereksiz yere yukar\u0131dan a\u015fa\u011f\u0131ya aktar\u0131lmas\u0131 anlam\u0131na gelir. Bu durum, kodun okunabilirli\u011fini ve s\u00fcrd\u00fcr\u00fclebilirli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r. Neyse ki, Context API bu soruna elegant bir \u00e7\u00f6z\u00fcm sunar.\" \/>\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\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"React&#039;te Prop Drilling&#039;den Context API ve TypeScript ile Kurtulma\" \/>\n<meta property=\"og:description\" content=\"Merhaba! Fatih Soysal olarak, bu yaz\u0131da React uygulamalar\u0131n\u0131zda s\u0131k\u00e7a kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z prop drilling sorununu nas\u0131l \u00e7\u00f6zebilece\u011finizi, Context API ve TypeScript&#039;in g\u00fcc\u00fcnden faydalanarak ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m. Prop drilling, verilerin bile\u015fen a\u011fac\u0131nda gereksiz yere yukar\u0131dan a\u015fa\u011f\u0131ya aktar\u0131lmas\u0131 anlam\u0131na gelir. Bu durum, kodun okunabilirli\u011fini ve s\u00fcrd\u00fcr\u00fclebilirli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r. Neyse ki, Context API bu soruna elegant bir \u00e7\u00f6z\u00fcm sunar.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-08T21:15:13+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\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"React&#8217;te Prop Drilling&#8217;den Context API ve TypeScript ile Kurtulma\",\"datePublished\":\"2025-04-08T21:15:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/\"},\"wordCount\":450,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/\",\"name\":\"React'te Prop Drilling'den Context API ve TypeScript ile Kurtulma\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-04-08T21:15:13+00:00\",\"description\":\"Merhaba! Fatih Soysal olarak, bu yaz\u0131da React uygulamalar\u0131n\u0131zda s\u0131k\u00e7a kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z prop drilling sorununu nas\u0131l \u00e7\u00f6zebilece\u011finizi, Context API ve TypeScript'in g\u00fcc\u00fcnden faydalanarak ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m. Prop drilling, verilerin bile\u015fen a\u011fac\u0131nda gereksiz yere yukar\u0131dan a\u015fa\u011f\u0131ya aktar\u0131lmas\u0131 anlam\u0131na gelir. Bu durum, kodun okunabilirli\u011fini ve s\u00fcrd\u00fcr\u00fclebilirli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r. Neyse ki, Context API bu soruna elegant bir \u00e7\u00f6z\u00fcm sunar.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"React&#8217;te Prop Drilling&#8217;den Context API ve TypeScript ile Kurtulma\"}]},{\"@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'te Prop Drilling'den Context API ve TypeScript ile Kurtulma","description":"Merhaba! Fatih Soysal olarak, bu yaz\u0131da React uygulamalar\u0131n\u0131zda s\u0131k\u00e7a kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z prop drilling sorununu nas\u0131l \u00e7\u00f6zebilece\u011finizi, Context API ve TypeScript'in g\u00fcc\u00fcnden faydalanarak ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m. Prop drilling, verilerin bile\u015fen a\u011fac\u0131nda gereksiz yere yukar\u0131dan a\u015fa\u011f\u0131ya aktar\u0131lmas\u0131 anlam\u0131na gelir. Bu durum, kodun okunabilirli\u011fini ve s\u00fcrd\u00fcr\u00fclebilirli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r. Neyse ki, Context API bu soruna elegant bir \u00e7\u00f6z\u00fcm sunar.","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\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/","og_locale":"tr_TR","og_type":"article","og_title":"React'te Prop Drilling'den Context API ve TypeScript ile Kurtulma","og_description":"Merhaba! Fatih Soysal olarak, bu yaz\u0131da React uygulamalar\u0131n\u0131zda s\u0131k\u00e7a kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z prop drilling sorununu nas\u0131l \u00e7\u00f6zebilece\u011finizi, Context API ve TypeScript'in g\u00fcc\u00fcnden faydalanarak ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m. Prop drilling, verilerin bile\u015fen a\u011fac\u0131nda gereksiz yere yukar\u0131dan a\u015fa\u011f\u0131ya aktar\u0131lmas\u0131 anlam\u0131na gelir. Bu durum, kodun okunabilirli\u011fini ve s\u00fcrd\u00fcr\u00fclebilirli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r. Neyse ki, Context API bu soruna elegant bir \u00e7\u00f6z\u00fcm sunar.","og_url":"https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-04-08T21:15:13+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\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"React&#8217;te Prop Drilling&#8217;den Context API ve TypeScript ile Kurtulma","datePublished":"2025-04-08T21:15:13+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/"},"wordCount":450,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/","url":"https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/","name":"React'te Prop Drilling'den Context API ve TypeScript ile Kurtulma","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-04-08T21:15:13+00:00","description":"Merhaba! Fatih Soysal olarak, bu yaz\u0131da React uygulamalar\u0131n\u0131zda s\u0131k\u00e7a kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z prop drilling sorununu nas\u0131l \u00e7\u00f6zebilece\u011finizi, Context API ve TypeScript'in g\u00fcc\u00fcnden faydalanarak ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m. Prop drilling, verilerin bile\u015fen a\u011fac\u0131nda gereksiz yere yukar\u0131dan a\u015fa\u011f\u0131ya aktar\u0131lmas\u0131 anlam\u0131na gelir. Bu durum, kodun okunabilirli\u011fini ve s\u00fcrd\u00fcr\u00fclebilirli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r. Neyse ki, Context API bu soruna elegant bir \u00e7\u00f6z\u00fcm sunar.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/reactte-prop-drillingden-context-api-ve-typescript-ile-kurtulma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"React&#8217;te Prop Drilling&#8217;den Context API ve TypeScript ile Kurtulma"}]},{"@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\/17582","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=17582"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/17582\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=17582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=17582"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=17582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}