{"id":39806,"date":"2026-02-24T02:40:51","date_gmt":"2026-02-23T23:40:51","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=39806"},"modified":"2026-02-24T02:40:51","modified_gmt":"2026-02-23T23:40:51","slug":"angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/","title":{"rendered":"Angular&#8217;da Dahili Borular (Pipes): Veri D\u00f6n\u00fc\u015f\u00fcm\u00fcnde G\u00fc\u00e7l\u00fc Bir Ara\u00e7"},"content":{"rendered":"<p><body><\/p>\n<h2>Angular&#8217;da Dahili Borular (Pipes): Veri D\u00f6n\u00fc\u015f\u00fcm\u00fcnde G\u00fc\u00e7l\u00fc Bir Ara\u00e7<\/h2>\n<h3>Giri\u015f: Angular Pipes Nedir ve Neden \u00d6nemlidir?<\/h3>\n<p>    Angular, modern ve \u00f6l\u00e7eklenebilir web uygulamalar\u0131 geli\u015ftirmek i\u00e7in kullan\u0131lan g\u00fc\u00e7l\u00fc bir \u00f6n y\u00fcz \u00e7er\u00e7evesidir. Bu \u00e7er\u00e7eve, geli\u015ftiricilere karma\u015f\u0131k kullan\u0131c\u0131 aray\u00fczlerini ve etkile\u015fimli deneyimleri kolayca olu\u015fturma imkan\u0131 sunar. Angular&#8217;\u0131n sundu\u011fu bir\u00e7ok \u00f6zellikten biri de &#8220;Pipes&#8221; (Borular) mekanizmas\u0131d\u0131r. Pipes, bir de\u011feri \u015fablonda (template) g\u00f6r\u00fcnt\u00fclemeden \u00f6nce d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in kullan\u0131lan basit fonksiyonlard\u0131r. Temel olarak, bir veriyi al\u0131r, \u00fczerinde belirli bir i\u015flem yapar ve d\u00f6n\u00fc\u015ft\u00fcr\u00fclm\u00fc\u015f \u00e7\u0131kt\u0131y\u0131 d\u00f6nd\u00fcr\u00fcr. Bu, \u00f6zellikle veri formatlama, filtreleme veya s\u0131ralama gibi yayg\u0131n g\u00f6revler i\u00e7in \u015fablonlar\u0131n\u0131z\u0131n temiz ve okunabilir kalmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>    Pipes&#8217;\u0131n \u00f6nemi birka\u00e7 ana noktada yatmaktad\u0131r:<\/p>\n<ol>\n<li><strong>Kod Tekrar\u0131n\u0131 Azaltma:<\/strong> Ayn\u0131 veri d\u00f6n\u00fc\u015f\u00fcm mant\u0131\u011f\u0131n\u0131 birden fazla yerde kullanman\u0131z gerekti\u011finde, bu mant\u0131\u011f\u0131 bir Pipe i\u00e7ine kaps\u00fclleyerek kod tekrar\u0131n\u0131 \u00f6nlersiniz.<\/li>\n<li><strong>\u015eablon Temizli\u011fi:<\/strong> Bile\u015fen s\u0131n\u0131f\u0131n\u0131zda (component class) karma\u015f\u0131k veri i\u015fleme mant\u0131\u011f\u0131 yazmak yerine, bu i\u015flemleri \u015fablonda Pipe kullanarak do\u011frudan uygulayabilirsiniz. Bu, bile\u015fen kodunuzun i\u015f mant\u0131\u011f\u0131na odaklanmas\u0131n\u0131 sa\u011flarken, \u015fablonun sadece verinin nas\u0131l g\u00f6r\u00fcnt\u00fclenece\u011fiyle ilgilenmesini sa\u011flar.<\/li>\n<li><strong>Okunabilirlik ve Bak\u0131m Kolayl\u0131\u011f\u0131:<\/strong> <code>{{ veri | pipeAd\u0131 }}<\/code> gibi basit bir s\u00f6zdizimi sayesinde, \u015fablonunuzda verinin nas\u0131l d\u00f6n\u00fc\u015ft\u00fcr\u00fcld\u00fc\u011f\u00fcn\u00fc anlamak \u00e7ok daha kolay hale gelir. Bu da uygulaman\u0131n bak\u0131m\u0131n\u0131 ve anla\u015f\u0131l\u0131rl\u0131\u011f\u0131n\u0131 art\u0131r\u0131r.<\/li>\n<li><strong>Mod\u00fclerlik:<\/strong> Her Pipe, belirli bir g\u00f6revi yerine getiren ba\u011f\u0131ms\u0131z bir birimdir. Bu mod\u00fcler yap\u0131, kodun daha d\u00fczenli olmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><strong>Performans \u0130yile\u015ftirmeleri:<\/strong> Angular, Pure (Saf) Pipes&#8217;\u0131 varsay\u0131lan olarak optimize eder. Bu, bir Pure Pipe&#8217;\u0131n yaln\u0131zca giri\u015f de\u011feri de\u011fi\u015fti\u011finde yeniden \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131 anlam\u0131na gelir, bu da gereksiz hesaplamalar\u0131 \u00f6nleyerek performans\u0131 art\u0131r\u0131r.<\/li>\n<\/ol>\n<p>    Angular, bir\u00e7ok yayg\u0131n d\u00f6n\u00fc\u015f\u00fcm ihtiyac\u0131n\u0131 kar\u015f\u0131lamak \u00fczere \u00f6nceden tan\u0131mlanm\u0131\u015f, kullan\u0131ma haz\u0131r &#8220;Dahili Borular&#8221; (Built-in Pipes) ile birlikte gelir. Bu makalede, Angular&#8217;\u0131n sundu\u011fu bu dahili borular\u0131 detayl\u0131 bir \u015fekilde inceleyecek, nas\u0131l kullan\u0131ld\u0131klar\u0131n\u0131 \u00f6rneklerle a\u00e7\u0131klayacak ve bu g\u00fc\u00e7l\u00fc arac\u0131n uygulaman\u0131zda nas\u0131l daha verimli kullan\u0131labilece\u011fine dair en iyi uygulamalar\u0131 ele alaca\u011f\u0131z.<\/p>\n<h3>Angular Pipes&#8217;\u0131n Temel Kavramlar\u0131<\/h3>\n<p>    Angular Pipes&#8217;\u0131 etkin bir \u015fekilde kullanabilmek i\u00e7in, onlar\u0131n temel \u00e7al\u0131\u015fma prensiplerini ve s\u00f6zdizimini anlamak kritik \u00f6neme sahiptir.<\/p>\n<h4>Pipe S\u00f6zdizimi ve Kullan\u0131m\u0131<\/h4>\n<p>    Bir Pipe kullanmak son derece basittir. \u015eablonunuzda, d\u00f6n\u00fc\u015ft\u00fcrmek istedi\u011finiz de\u011ferin ard\u0131ndan dikey \u00e7izgi (<code>|<\/code>) operat\u00f6r\u00fcn\u00fc ve ard\u0131ndan Pipe ad\u0131n\u0131 eklersiniz.<\/p>\n<pre><code class=\"language-html\">{{ de\u011fer | pipeAd\u0131 }}<\/code><\/pre>\n<p>    \u00d6rne\u011fin, bir metni b\u00fcy\u00fck harfe d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in <code>UpperCasePipe<\/code> kullanabiliriz:<\/p>\n<pre><code class=\"language-html\"><p>Orijinal Metin: {{ 'merhaba d\u00fcnya' }}<\/p>\n<p>B\u00fcy\u00fck Harfli Metin: {{ 'merhaba d\u00fcnya' | uppercase }}<\/p>\n<!-- \u00c7\u0131kt\u0131: B\u00dcY\u00dcK HARFL\u0130 MET\u0130N: MERHABA D\u00dcNYA --><\/code><\/pre>\n<p>    Baz\u0131 Pipes, davran\u0131\u015flar\u0131n\u0131 \u00f6zelle\u015ftirmek i\u00e7in parametreler alabilir. Parametreler, Pipe ad\u0131n\u0131n ard\u0131ndan iki nokta \u00fcst \u00fcste (<code>:<\/code>) ile ayr\u0131l\u0131r. Birden fazla parametre varsa, bunlar da iki nokta \u00fcst \u00fcste ile ayr\u0131l\u0131r:<\/p>\n<pre><code class=\"language-html\">{{ de\u011fer | pipeAd\u0131:parametre1:parametre2 }}<\/code><\/pre>\n<p>    \u00d6rne\u011fin, bir say\u0131y\u0131 belirli bir ondal\u0131k basamak say\u0131s\u0131yla formatlamak i\u00e7in <code>DecimalPipe<\/code> kullanabiliriz:<\/p>\n<pre><code class=\"language-html\"><p>Say\u0131: {{ 12345.6789 | number:'1.2-2' }}<\/p>\n<!-- \u00c7\u0131kt\u0131: Say\u0131: 12,345.68 --><\/code><\/pre>\n<p>    Burada <code>number<\/code> Pipe&#8217;\u0131, <code>1.2-2<\/code> format parametresini almaktad\u0131r. Bu parametre, say\u0131n\u0131n en az 1 tam say\u0131 basama\u011f\u0131, en az 2 ondal\u0131k basamak ve en fazla 2 ondal\u0131k basamak i\u00e7ermesi gerekti\u011fini belirtir.<\/p>\n<h4>Pure (Saf) ve Impure (Saf Olmayan) Pipes<\/h4>\n<p>    Angular Pipes, performans a\u00e7\u0131s\u0131ndan iki ana kategoriye ayr\u0131l\u0131r: Pure (Saf) ve Impure (Saf Olmayan). Bu ayr\u0131m, Pipe&#8217;\u0131n ne zaman yeniden \u00e7al\u0131\u015ft\u0131r\u0131laca\u011f\u0131n\u0131 belirler ve uygulaman\u0131z\u0131n performans\u0131n\u0131 do\u011frudan etkiler.<\/p>\n<h5>Pure Pipes<\/h5>\n<p>    Varsay\u0131lan olarak, t\u00fcm Angular Pipes Pure&#8217;dur. Bir Pure Pipe, yaln\u0131zca giri\u015f de\u011feri de\u011fi\u015fti\u011finde yeniden \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r. Angular, giri\u015f de\u011ferlerinin referanslar\u0131n\u0131 kontrol ederek bir de\u011fi\u015fikli\u011fin olup olmad\u0131\u011f\u0131n\u0131 belirler.<\/p>\n<ul>\n<li>Giri\u015f de\u011feri bir ilkel t\u00fcr (string, number, boolean, symbol) ise, de\u011feri do\u011frudan kar\u015f\u0131la\u015ft\u0131r\u0131l\u0131r.<\/li>\n<li>Giri\u015f de\u011feri bir nesne (object, array, function) ise, Angular yaln\u0131zca referans\u0131n de\u011fi\u015fip de\u011fi\u015fmedi\u011fini kontrol eder, nesnenin i\u00e7indeki \u00f6zelliklerin de\u011fi\u015fip de\u011fi\u015fmedi\u011fini kontrol etmez (s\u0131\u011f kar\u015f\u0131la\u015ft\u0131rma).<\/li>\n<\/ul>\n<p>    Bu davran\u0131\u015f, Pure Pipes&#8217;\u0131n \u00e7ok verimli olmas\u0131n\u0131 sa\u011flar \u00e7\u00fcnk\u00fc gereksiz hesaplamalar\u0131 \u00f6nler. \u00c7o\u011fu dahili Pipe (\u00f6rne\u011fin <code>DatePipe<\/code>, <code>CurrencyPipe<\/code>, <code>UpperCasePipe<\/code>) Pure&#8217;dur.<br \/>\n    \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-typescript\">@Component({\n  selector: 'app-pure-example',\n  template: <code>\n    <p>Tarih: {{ myDate | date:'medium' }}<\/p>\n    <button (click)=\"changeDateReference()\">Tarih Referans\u0131n\u0131 De\u011fi\u015ftir<\/button>\n    <button (click)=\"updateDateObject()\">Tarih Nesnesini G\u00fcncelle (Referans Ayn\u0131)<\/button>\n  <\/code>\n})\nexport class PureExampleComponent {\n  myDate: Date = new Date();\n\n  changeDateReference() {\n    this.myDate = new Date(); \/\/ Yeni referans, pipe \u00e7al\u0131\u015f\u0131r\n  }\n\n  updateDateObject() {\n    this.myDate.setHours(this.myDate.getHours() + 1); \/\/ Referans ayn\u0131, pipe \u00e7al\u0131\u015fmaz\n    console.log('Tarih nesnesi g\u00fcncellendi, ancak referans de\u011fi\u015fmedi.');\n  }\n}<\/code><\/pre>\n<p>    <code>updateDateObject()<\/code> metodunu \u00e7a\u011f\u0131rd\u0131\u011f\u0131n\u0131zda, <code>myDate<\/code> nesnesinin i\u00e7eri\u011fi de\u011fi\u015fse bile, referans\u0131 de\u011fi\u015fmedi\u011fi i\u00e7in <code>DatePipe<\/code> yeniden \u00e7al\u0131\u015fmayacak ve \u015fablonda g\u00f6sterilen tarih g\u00fcncellenmeyecektir. Bu, Pure Pipes&#8217;\u0131n s\u0131\u011f kar\u015f\u0131la\u015ft\u0131rma yapmas\u0131ndan kaynaklan\u0131r.<\/p>\n<h5>Impure Pipes<\/h5>\n<p>    Impure Pipes, her alg\u0131lama d\u00f6ng\u00fcs\u00fcnde (change detection cycle) \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r. Bu, bir bile\u015fenin herhangi bir \u00f6zelli\u011fi de\u011fi\u015fti\u011finde veya bir DOM olay\u0131 (t\u0131klama, klavye giri\u015fi vb.) tetiklendi\u011finde bile Pipe&#8217;\u0131n yeniden \u00e7al\u0131\u015faca\u011f\u0131 anlam\u0131na gelir. Impure Pipes, genellikle nesne referanslar\u0131 de\u011fi\u015fmeden nesnelerin i\u00e7eri\u011findeki de\u011fi\u015fiklikleri izlemesi gereken durumlar i\u00e7in kullan\u0131l\u0131r.<br \/>\n    <code>AsyncPipe<\/code> ve <code>JsonPipe<\/code> gibi baz\u0131 dahili Pipes Impure&#8217;dur. Kendi Impure Pipe&#8217;\u0131n\u0131z\u0131 olu\u015fturmak i\u00e7in, <code>@Pipe<\/code> dekorat\u00f6r\u00fcne <code>pure: false<\/code> \u00f6zelli\u011fini eklemeniz gerekir.<br \/>\n    Impure Pipes&#8217;\u0131n her alg\u0131lama d\u00f6ng\u00fcs\u00fcnde \u00e7al\u0131\u015fmas\u0131, performans \u00fczerinde olumsuz bir etki yaratabilir, \u00f6zellikle de Pipe i\u00e7inde karma\u015f\u0131k veya yo\u011fun hesaplamalar yap\u0131l\u0131yorsa. Bu nedenle, Impure Pipes dikkatli kullan\u0131lmal\u0131 ve yaln\u0131zca ger\u00e7ekten ihtiya\u00e7 duyuldu\u011funda tercih edilmelidir.<\/p>\n<h4>Pipe Zincirleme ve Parametre Kullan\u0131m\u0131<\/h4>\n<p>    Angular Pipes&#8217;\u0131n g\u00fc\u00e7l\u00fc \u00f6zelliklerinden biri de birden fazla Pipe&#8217;\u0131 ard\u0131\u015f\u0131k olarak kullanabilme yetene\u011fidir. Buna &#8220;Pipe Zincirleme&#8221; denir. Bir Pipe&#8217;\u0131n \u00e7\u0131kt\u0131s\u0131, bir sonraki Pipe&#8217;\u0131n girdisi haline gelir.<\/p>\n<pre><code class=\"language-html\">{{ de\u011fer | pipeAd\u01311:parametre1 | pipeAd\u01312:parametre2 }}<\/code><\/pre>\n<p>    \u00d6rne\u011fin, bir metni \u00f6nce dilimleyip sonra b\u00fcy\u00fck harfe d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz:<\/p>\n<pre><code class=\"language-html\"><p>Zincirlenmi\u015f Pipe: {{ 'angular framework' | slice:0:7 | uppercase }}<\/p>\n<!-- \u00c7\u0131kt\u0131: Zincirlenmi\u015f Pipe: ANGULAR --><\/code><\/pre>\n<p>    Burada, <code>slice:0:7<\/code> Pipe&#8217;\u0131 &#8216;angular framework&#8217; metnini &#8216;angular&#8217; olarak d\u00f6n\u00fc\u015ft\u00fcr\u00fcr ve bu \u00e7\u0131kt\u0131 <code>uppercase<\/code> Pipe&#8217;\u0131na girdi olarak verilir, sonu\u00e7 olarak &#8216;ANGULAR&#8217; elde edilir.<\/p>\n<p>    Parametreler, Pipe&#8217;\u0131n davran\u0131\u015f\u0131n\u0131 \u00f6zelle\u015ftirmek i\u00e7in kullan\u0131l\u0131r. Her Pipe&#8217;\u0131n kendi \u00f6zel parametreleri olabilir ve bu parametreler genellikle iste\u011fe ba\u011fl\u0131d\u0131r. Parametrelerin do\u011fru format ve de\u011ferlerle kullan\u0131lmas\u0131, Pipe&#8217;\u0131n beklenen \u00e7\u0131kt\u0131y\u0131 vermesini sa\u011flar.<\/p>\n<h3>Angular&#8217;\u0131n Dahili Borular\u0131: Detayl\u0131 \u0130nceleme ve Kullan\u0131m \u00d6rnekleri<\/h3>\n<p>    Angular, bir\u00e7ok yayg\u0131n veri d\u00f6n\u00fc\u015f\u00fcm senaryosu i\u00e7in kullan\u0131\u015fl\u0131 dahili borular sa\u011flar. Bu b\u00f6l\u00fcmde, en s\u0131k kullan\u0131lan dahili borular\u0131 ayr\u0131nt\u0131l\u0131 olarak inceleyece\u011fiz.<\/p>\n<h4>Metin D\u00f6n\u00fc\u015f\u00fcm Borular\u0131<\/h4>\n<p>    Metin tabanl\u0131 verileri formatlamak i\u00e7in kullan\u0131lan borulard\u0131r.<\/p>\n<h5>UpperCasePipe<\/h5>\n<p>    Bir metni tamamen b\u00fcy\u00fck harfe d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-html\"><p>Normal: {{ 'angular' }}<\/p>\n<p>B\u00fcy\u00fck Harf: {{ 'angular' | uppercase }}<\/p>\n<!-- \u00c7\u0131kt\u0131: B\u00fcy\u00fck Harf: ANGULAR --><\/code><\/pre>\n<h5>LowerCasePipe<\/h5>\n<p>    Bir metni tamamen k\u00fc\u00e7\u00fck harfe d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-html\"><p>Normal: {{ 'ANGULAR' }}<\/p>\n<p>K\u00fc\u00e7\u00fck Harf: {{ 'ANGULAR' | lowercase }}<\/p>\n<!-- \u00c7\u0131kt\u0131: K\u00fc\u00e7\u00fck Harf: angular --><\/code><\/pre>\n<h5>TitleCasePipe<\/h5>\n<p>    Bir metindeki her kelimenin ilk harfini b\u00fcy\u00fck harfe d\u00f6n\u00fc\u015ft\u00fcr\u00fcr ve di\u011fer harfleri k\u00fc\u00e7\u00fck harfe ayarlar.<\/p>\n<pre><code class=\"language-html\"><p>Ba\u015fl\u0131k Durumu: {{ 'angular framework' | titlecase }}<\/p>\n<!-- \u00c7\u0131kt\u0131: Ba\u015fl\u0131k Durumu: Angular Framework --><\/code><\/pre>\n<h5>SlicePipe<\/h5>\n<p>    Bir dizinin veya metin dizisinin belirli bir b\u00f6l\u00fcm\u00fcn\u00fc d\u00f6nd\u00fcr\u00fcr. \u0130ki iste\u011fe ba\u011fl\u0131 parametre al\u0131r: <code>start<\/code> (ba\u015flang\u0131\u00e7 indeksi) ve <code>end<\/code> (biti\u015f indeksi). <code>end<\/code> parametresi dahil de\u011fildir.<\/p>\n<pre><code class=\"language-html\"><p>Dilimlenmi\u015f Metin: {{ 'Merhaba D\u00fcnya' | slice:0:7 }}<\/p>\n<!-- \u00c7\u0131kt\u0131: Dilimlenmi\u015f Metin: Merhaba -->\n\n<p>Sondan Ba\u015flayan Dilim: {{ 'Angular' | slice:-3 }}<\/p>\n<!-- \u00c7\u0131kt\u0131: Sondan Ba\u015flayan Dilim: lar -->\n\n<p>Diziden Dilim: {{ ['elma', 'armut', 'muz', '\u00e7ilek'] | slice:1:3 }}<\/p>\n<!-- \u00c7\u0131kt\u0131: Diziden Dilim: armut,muz --><\/code><\/pre>\n<h5>JsonPipe<\/h5>\n<p>    Bir JavaScript de\u011ferini (nesne, dizi vb.) JSON format\u0131nda bir metin dizisine d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. \u00d6zellikle hata ay\u0131klama (debugging) s\u0131ras\u0131nda nesnelerin i\u00e7eri\u011fini h\u0131zl\u0131ca g\u00f6r\u00fcnt\u00fclemek i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<pre><code class=\"language-html\"><pre>{{ { isim: 'Ali', ya\u015f: 30, \u015fehir: 'Ankara' } | json }}<\/pre>\n<p><!-- \u00c7\u0131kt\u0131:\n{\n  \"isim\": \"Ali\",\n  \"ya\u015f\": 30,\n  \"\u015fehir\": \"Ankara\"\n}\n--><\/code><br \/>\n    <code>JsonPipe<\/code> Impure bir Pipe&#8217;t\u0131r, yani nesnenin i\u00e7eri\u011fi de\u011fi\u015fti\u011finde otomatik olarak g\u00fcncellenir.<\/p>\n<h4>Say\u0131 D\u00f6n\u00fc\u015f\u00fcm Borular\u0131<\/h4>\n<p>    Say\u0131sal verileri formatlamak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h5>DecimalPipe<\/h5>\n<p>    Bir say\u0131y\u0131 yerel ayara (locale) g\u00f6re formatlar. Minimum ve maksimum tam say\u0131\/ondal\u0131k basamak say\u0131lar\u0131n\u0131 belirten bir format dizesi al\u0131r: <code>'{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}'<\/code>.<\/p>\n<pre><code class=\"language-html\"><p>Say\u0131 Format\u0131 1: {{ 12345.6789 | number }}<\/p>\n<!-- \u00c7\u0131kt\u0131: Say\u0131 Format\u0131 1: 12,345.679 (varsay\u0131lan locale ve basamak say\u0131s\u0131) -->\n\n<p>Say\u0131 Format\u0131 2: {{ 12345.6789 | number:'1.2-2' }}<\/p>\n<!-- \u00c7\u0131kt\u0131: Say\u0131 Format\u0131 2: 12,345.68 (en az 1 tam say\u0131, 2 ondal\u0131k basamak, en fazla 2 ondal\u0131k basamak) -->\n\n<p>Say\u0131 Format\u0131 3: {{ 123.4 | number:'2.0-0' }}<\/p>\n<!-- \u00c7\u0131kt\u0131: Say\u0131 Format\u0131 3: 123 (en az 2 tam say\u0131, 0 ondal\u0131k basamak) --><\/code><\/pre>\n<p>    Format dizesi:<\/p>\n<ul>\n<li><code>minIntegerDigits<\/code>: Tam say\u0131 k\u0131sm\u0131n\u0131n minimum basamak say\u0131s\u0131. E\u011fer say\u0131 daha az basamakl\u0131ysa, \u00f6n\u00fcne s\u0131f\u0131r eklenir.<\/li>\n<li><code>minFractionDigits<\/code>: Ondal\u0131k k\u0131sm\u0131n\u0131n minimum basamak say\u0131s\u0131. E\u011fer say\u0131 daha az basamakl\u0131ysa, sonuna s\u0131f\u0131r eklenir.<\/li>\n<li><code>maxFractionDigits<\/code>: Ondal\u0131k k\u0131sm\u0131n\u0131n maksimum basamak say\u0131s\u0131. Say\u0131 bu basamak say\u0131s\u0131ndan fazlaysa yuvarlan\u0131r.<\/li>\n<\/ul>\n<h5>PercentPipe<\/h5>\n<p>    Bir say\u0131y\u0131 y\u00fczde format\u0131na d\u00f6n\u00fc\u015ft\u00fcr\u00fcr (1.0 = %100). <code>DecimalPipe<\/code> ile ayn\u0131 format dizesi parametresini al\u0131r.<\/p>\n<pre><code class=\"language-html\"><p>Y\u00fczde Format\u0131 1: {{ 0.25 | percent }}<\/p>\n<!-- \u00c7\u0131kt\u0131: Y\u00fczde Format\u0131 1: %25 -->\n\n<p>Y\u00fczde Format\u0131 2: {{ 0.735 | percent:'1.1-1' }}<\/p>\n<!-- \u00c7\u0131kt\u0131: Y\u00fczde Format\u0131 2: %73.5 --><\/code><\/pre>\n<h5>CurrencyPipe<\/h5>\n<p>    Bir say\u0131y\u0131 para birimi format\u0131na d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. D\u00f6rt iste\u011fe ba\u011fl\u0131 parametre al\u0131r: <code>currencyCode<\/code>, <code>display<\/code> (g\u00f6r\u00fcnt\u00fcleme \u015fekli), <code>digitsInfo<\/code> (ondal\u0131k basamak format\u0131) ve <code>locale<\/code>.<\/p>\n<pre><code class=\"language-html\"><p>Para Birimi 1: {{ 1234.56 | currency }}<\/p>\n<!-- \u00c7\u0131kt\u0131: Para Birimi 1: $1,234.56 (varsay\u0131lan locale ve USD) -->\n\n<p>Para Birimi 2: {{ 1234.56 | currency:'EUR' }}<\/p>\n<!-- \u00c7\u0131kt\u0131: Para Birimi 2: \u20ac1,234.56 -->\n\n<p>Para Birimi 3: {{ 1234.56 | currency:'TRY':'symbol':'1.2-2' }}<\/p>\n<!-- \u00c7\u0131kt\u0131: Para Birimi 3: \u20ba1.234,56 (T\u00fcrk Liras\u0131 sembol\u00fc ile, 2 ondal\u0131k basamak) -->\n\n<p>Para Birimi 4: {{ 1234.56 | currency:'GBP':'code' }}<\/p>\n<!-- \u00c7\u0131kt\u0131: Para Birimi 4: GBP 1,234.56 (Para birimi kodu ile) --><\/code><\/pre>\n<p>    <code>display<\/code> parametresi i\u00e7in olas\u0131 de\u011ferler:<\/p>\n<ul>\n<li><code>'symbol'<\/code> (varsay\u0131lan): Para birimi sembol\u00fc (\u00f6rn. $).<\/li>\n<li><code>'code'<\/code>: ISO 4217 para birimi kodu (\u00f6rn. USD).<\/li>\n<li><code>'symbol-narrow'<\/code>: Dar para birimi sembol\u00fc (\u00f6rn. $).<\/li>\n<li><code>'name'<\/code>: Para biriminin tam ad\u0131 (\u00f6rn. US dollars).<\/li>\n<li><code>'false'<\/code>: Hi\u00e7bir sembol veya kod g\u00f6stermez.<\/li>\n<\/ul>\n<h4>Tarih D\u00f6n\u00fc\u015f\u00fcm Borular\u0131<\/h4>\n<p>    Tarih ve saat verilerini formatlamak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h5>DatePipe<\/h5>\n<p>    Bir tarihi veya zaman\u0131 yerel ayara g\u00f6re formatlar. En esnek ve karma\u015f\u0131k dahili Pipe&#8217;lardan biridir. \u0130ki iste\u011fe ba\u011fl\u0131 parametre al\u0131r: <code>format<\/code> dizesi ve <code>timezone<\/code>.<\/p>\n<pre><code class=\"language-html\"><p>Varsay\u0131lan Tarih: {{ myDate | date }}<\/p>\n<!-- \u00c7\u0131kt\u0131: Varsay\u0131lan Tarih: Sep 3, 2023 (varsay\u0131lan locale ve format) -->\n\n<p>K\u0131sa Tarih: {{ myDate | date:'shortDate' }}<\/p>\n<!-- \u00c7\u0131kt\u0131: K\u0131sa Tarih: 9\/3\/23 -->\n\n<p>Tam Tarih ve Saat: {{ myDate | date:'full' }}<\/p>\n<!-- \u00c7\u0131kt\u0131: Tam Tarih ve Saat: Sunday, September 3, 2023 at 11:30:00 AM GMT+03:00 -->\n\n<p>\u00d6zel Format: {{ myDate | date:'dd\/MM\/yyyy HH:mm:ss' }}<\/p>\n<!-- \u00c7\u0131kt\u0131: \u00d6zel Format: 03\/09\/2023 11:30:00 -->\n\n<p>Zaman Dilimi: {{ myDate | date:'medium':'+0500' }}<\/p>\n<!-- \u00c7\u0131kt\u0131: Zaman Dilimi: Sep 3, 2023, 9:30:00 AM --><\/code><\/pre>\n<p>    <code>format<\/code> parametresi i\u00e7in bir\u00e7ok \u00f6nceden tan\u0131mlanm\u0131\u015f format dizesi (\u00f6rn. <code>'short'<\/code>, <code>'medium'<\/code>, <code>'long'<\/code>, <code>'full'<\/code>, <code>'shortDate'<\/code>, <code>'mediumDate'<\/code>, <code>'longDate'<\/code>, <code>'fullDate'<\/code>, <code>'shortTime'<\/code>, <code>'mediumTime'<\/code>, <code>'longTime'<\/code>, <code>'fullTime'<\/code>) veya \u00f6zel bir format dizesi kullanabilirsiniz. \u00d6zel format dizesi, a\u015fa\u011f\u0131daki gibi harflerin bir kombinasyonudur:<\/p>\n<ul>\n<li><code>y<\/code>: Y\u0131l (\u00f6rn. 2023)<\/li>\n<li><code>yy<\/code>: Y\u0131l\u0131n son iki hanesi (\u00f6rn. 23)<\/li>\n<li><code>yyyy<\/code>: D\u00f6rt haneli y\u0131l (\u00f6rn. 2023)<\/li>\n<li><code>M<\/code>: Ay (1-12)<\/li>\n<li><code>MM<\/code>: \u0130ki haneli ay (01-12)<\/li>\n<li><code>MMM<\/code>: Ay\u0131n k\u0131sa ad\u0131 (\u00f6rn. Eyl)<\/li>\n<li><code>MMMM<\/code>: Ay\u0131n tam ad\u0131 (\u00f6rn. Eyl\u00fcl)<\/li>\n<li><code>d<\/code>: G\u00fcn (1-31)<\/li>\n<li><code>dd<\/code>: \u0130ki haneli g\u00fcn (01-31)<\/li>\n<li><code>E<\/code>: Haftan\u0131n g\u00fcn\u00fc k\u0131sa ad\u0131 (\u00f6rn. Paz)<\/li>\n<li><code>EEEE<\/code>: Haftan\u0131n g\u00fcn\u00fc tam ad\u0131 (\u00f6rn. Pazar)<\/li>\n<li><code>h<\/code>: Saat (1-12)<\/li>\n<li><code>hh<\/code>: \u0130ki haneli saat (01-12)<\/li>\n<li><code>H<\/code>: Saat (0-23)<\/li>\n<li><code>HH<\/code>: \u0130ki haneli saat (00-23)<\/li>\n<li><code>m<\/code>: Dakika (0-59)<\/li>\n<li><code>mm<\/code>: \u0130ki haneli dakika (00-59)<\/li>\n<li><code>s<\/code>: Saniye (0-59)<\/li>\n<li><code>ss<\/code>: \u0130ki haneli saniye (00-59)<\/li>\n<li><code>a<\/code>: AM\/PM g\u00f6stergesi<\/li>\n<li><code>z<\/code>: Zaman dilimi k\u0131sa ad\u0131<\/li>\n<li><code>zzz<\/code>: Zaman dilimi tam ad\u0131<\/li>\n<\/ul>\n<h4>Asenkron Veri Y\u00f6netimi Borular\u0131<\/h4>\n<p>    Asenkron verileri (Promises ve Observables) y\u00f6netmek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h5>AsyncPipe<\/h5>\n<p>    Bir Promise veya Observable&#8217;a abone olur ve en son yay\u0131mlanan de\u011ferini d\u00f6nd\u00fcr\u00fcr. Bile\u015fen yok edildi\u011finde (destroyed) otomatik olarak aboneli\u011fi iptal eder, bu da bellek s\u0131z\u0131nt\u0131lar\u0131n\u0131 \u00f6nler.<\/p>\n<pre><code class=\"language-typescript\">@Component({\n  selector: 'app-async-example',\n  template: <code>\n    <p>Promise Verisi: {{ myPromise | async }}<\/p>\n    <p>Observable Verisi: {{ myObservable | async }}<\/p>\n    <div *ngIf=\"data$ | async as data\">\n      <p>Observable'dan gelen veri: {{ data }}<\/p>\n    <\/div>\n  <\/code>\n})\nexport class AsyncExampleComponent implements OnInit {\n  myPromise: Promise<string>;\n  myObservable: Observable<number>;\n  data$: Observable<string>;\n\n  ngOnInit() {\n    this.myPromise = Promise.resolve('Promise Tamamland\u0131!');\n    this.myObservable = of(1, 2, 3).pipe(delay(1000)); \/\/ 1 saniye sonra 1,2,3 yay\u0131mlar\n    this.data$ = interval(1000).pipe(map(i => <code>Veri ${i + 1}<\/code>), take(5)); \/\/ Her saniye yeni veri yay\u0131mlar\n  }\n}<\/code><\/pre>\n<p>    <code>AsyncPipe<\/code> Impure bir Pipe&#8217;t\u0131r \u00e7\u00fcnk\u00fc abone oldu\u011fu Observable veya Promise&#8217;dan yeni de\u011ferler geldi\u011finde her zaman \u00e7al\u0131\u015fmas\u0131 gerekir. Bu Pipe, Angular uygulamalar\u0131nda asenkron veri ak\u0131\u015flar\u0131n\u0131 y\u00f6netmenin en temiz ve en g\u00fcvenli yollar\u0131ndan biridir. <code>*ngIf<\/code> ile birlikte kullan\u0131lmas\u0131, verinin gelmesini beklerken UI&#8217;da placeholder g\u00f6sterme gibi senaryolarda \u00e7ok yayg\u0131nd\u0131r.<\/p>\n<h4>Di\u011fer Faydal\u0131 Dahili Borular<\/h4>\n<h5>KeyValuePipe<\/h5>\n<p>    Bir nesneyi veya <code>Map<\/code>&#8216;i anahtar-de\u011fer \u00e7iftleri dizisine d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. Bu, <code>*ngFor<\/code> ile bir nesnenin veya <code>Map<\/code>&#8216;in \u00f6zelliklerini kolayca yinelemenizi sa\u011flar. \u0130ste\u011fe ba\u011fl\u0131 bir <code>compareFn<\/code> (kar\u015f\u0131la\u015ft\u0131rma fonksiyonu) parametresi al\u0131r.<\/p>\n<pre><code class=\"language-html\"><div *ngFor=\"let entry of myObject | keyvalue\">\n  <p>Anahtar: {{ entry.key }}, De\u011fer: {{ entry.value }}<\/p>\n<\/div>\n\n<!-- myObject = { name: 'Ay\u015fe', age: 25, city: '\u0130zmir' } -->\n<!-- \u00c7\u0131kt\u0131:\nAnahtar: name, De\u011fer: Ay\u015fe\nAnahtar: age, De\u011fer: 25\nAnahtar: city, De\u011fer: \u0130zmir\n--><\/code><\/pre>\n<p>    <code>KeyValuePipe<\/code> varsay\u0131lan olarak anahtarlar\u0131 artan s\u0131raya g\u00f6re s\u0131ralar. S\u0131ralama d\u00fczenini de\u011fi\u015ftirmek i\u00e7in \u00f6zel bir kar\u015f\u0131la\u015ft\u0131rma fonksiyonu sa\u011flayabilirsiniz.<\/p>\n<h3>Angular Pipes Kullan\u0131m\u0131nda En \u0130yi Uygulamalar ve Dikkat Edilmesi Gerekenler<\/h3>\n<p>    Pipes, Angular geli\u015ftiricileri i\u00e7in son derece g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r, ancak performans ve bak\u0131m kolayl\u0131\u011f\u0131 a\u00e7\u0131s\u0131ndan baz\u0131 en iyi uygulamalar\u0131 ve dikkat edilmesi gereken noktalar\u0131 g\u00f6z \u00f6n\u00fcnde bulundurmak \u00f6nemlidir.<\/p>\n<h4>Performans ve Pure\/Impure Pipes Se\u00e7imi<\/h4>\n<p>    *   <strong>Pure Pipes&#8217;\u0131 Tercih Edin:<\/strong> M\u00fcmk\u00fcn oldu\u011funca Pure Pipes kullan\u0131n. Bunlar, yaln\u0131zca giri\u015f de\u011ferleri (referanslar\u0131) de\u011fi\u015fti\u011finde yeniden \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131klar\u0131 i\u00e7in performans a\u00e7\u0131s\u0131ndan \u00e7ok daha verimlidir. \u00c7o\u011fu veri formatlama ihtiyac\u0131 Pure Pipes ile kar\u015f\u0131lanabilir.<br \/>\n    *   <strong>Impure Pipes&#8217;\u0131 Dikkatli Kullan\u0131n:<\/strong> Impure Pipes her alg\u0131lama d\u00f6ng\u00fcs\u00fcnde \u00e7al\u0131\u015f\u0131r. Bu, uygulaman\u0131z\u0131n performans\u0131n\u0131 olumsuz etkileyebilir, \u00f6zellikle de \u00e7ok say\u0131da Impure Pipe&#8217;\u0131n\u0131z varsa veya Pipe i\u00e7indeki mant\u0131k karma\u015f\u0131ksa. Yaln\u0131zca ger\u00e7ekten nesne i\u00e7eri\u011findeki de\u011fi\u015fiklikleri izlemeniz gerekti\u011finde (<code>AsyncPipe<\/code> gibi) veya \u00f6zel bir nedeniniz oldu\u011funda Impure Pipe kullan\u0131n. Kendi Impure Pipe&#8217;\u0131n\u0131z\u0131 olu\u015ftururken, i\u00e7inde yap\u0131lan i\u015flemlerin hafif oldu\u011fundan emin olun.<\/p>\n<h4>Pipes m\u0131, Component Metotlar\u0131 m\u0131?<\/h4>\n<p>    Bazen bir veriyi d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in bir Pipe m\u0131 yoksa bile\u015fen i\u00e7inde bir metot mu kullanman\u0131z gerekti\u011fi konusunda teredd\u00fct edebilirsiniz. \u0130\u015fte karar vermenize yard\u0131mc\u0131 olacak baz\u0131 y\u00f6nergeler:<br \/>\n    *   <strong>Pipes Kullan\u0131n:<\/strong><br \/>\n        *   D\u00f6n\u00fc\u015f\u00fcm mant\u0131\u011f\u0131 safsa (yani, ayn\u0131 girdi her zaman ayn\u0131 \u00e7\u0131kt\u0131y\u0131 veriyorsa ve d\u0131\u015f duruma ba\u011f\u0131ml\u0131 de\u011filse).<br \/>\n        *   D\u00f6n\u00fc\u015f\u00fcm mant\u0131\u011f\u0131 birden fazla \u015fablonda veya bile\u015fende tekrar kullan\u0131l\u0131yorsa.<br \/>\n        *   D\u00f6n\u00fc\u015f\u00fcm mant\u0131\u011f\u0131 nispeten basit ve h\u0131zl\u0131ysa.<br \/>\n        *   \u015eablonun daha temiz ve okunabilir olmas\u0131n\u0131 istiyorsan\u0131z.<br \/>\n    *   <strong>Component Metotlar\u0131 veya Getters Kullan\u0131n:<\/strong><br \/>\n        *   D\u00f6n\u00fc\u015f\u00fcm mant\u0131\u011f\u0131 Impure ise (yani, d\u0131\u015f duruma ba\u011f\u0131ml\u0131ysa veya yan etkileri varsa).<br \/>\n        *   D\u00f6n\u00fc\u015f\u00fcm mant\u0131\u011f\u0131 karma\u015f\u0131k ve performans yo\u011funsa.<br \/>\n        *   D\u00f6n\u00fc\u015f\u00fcm sadece belirli bir bile\u015fen i\u00e7inde bir kez kullan\u0131l\u0131yorsa.<br \/>\n        *   D\u00f6n\u00fc\u015f\u00fcm, kullan\u0131c\u0131n\u0131n etkile\u015fimine veya di\u011fer bile\u015fen durumlar\u0131na ba\u011fl\u0131ysa.<br \/>\n    Unutmay\u0131n ki bir bile\u015fen metodunu \u015fablonda \u00e7a\u011f\u0131rmak, her alg\u0131lama d\u00f6ng\u00fcs\u00fcnde metodun yeniden \u00e7al\u0131\u015fmas\u0131na neden olur. Bu da \u00f6zellikle karma\u015f\u0131k metotlar i\u00e7in performans sorunlar\u0131na yol a\u00e7abilir. Bu nedenle, Pure Pipes genellikle daha g\u00fcvenli bir se\u00e7enektir.<\/p>\n<h4>Uluslararas\u0131la\u015fma (i18n) ve Yerel Ayarlar<\/h4>\n<p>    Angular&#8217;\u0131n dahili Pipes&#8217;\u0131 (\u00f6zellikle <code>DatePipe<\/code>, <code>DecimalPipe<\/code>, <code>CurrencyPipe<\/code>, <code>PercentPipe<\/code>) uluslararas\u0131la\u015fma (i18n) yetenekleriyle entegre edilmi\u015ftir. Bu, farkl\u0131 diller ve b\u00f6lgeler i\u00e7in do\u011fru formatlamay\u0131 sa\u011flamak \u00fczere uygulaman\u0131z\u0131n yerel ayar\u0131n\u0131 (locale) kullanacaklar\u0131 anlam\u0131na gelir.<br \/>\n    *   Uygulaman\u0131z\u0131n varsay\u0131lan yerel ayar\u0131n\u0131 <code>APP_INITIALIZER<\/code> veya <code>LOCALE_ID<\/code> sa\u011flay\u0131c\u0131s\u0131n\u0131 kullanarak ayarlayabilirsiniz. \u00d6rne\u011fin, <code>app.module.ts<\/code> dosyas\u0131nda <code>registerLocaleData(localeTr, 'tr');<\/code> \u00e7a\u011fr\u0131s\u0131 yaparak ve <code>[{ provide: LOCALE_ID, useValue: 'tr' }]<\/code> sa\u011flayarak T\u00fcrk\u00e7eyi varsay\u0131lan yerel ayar yapabilirsiniz.<br \/>\n    *   Pipes, bu yerel ayar bilgilerini otomatik olarak kullanarak tarihleri, say\u0131lar\u0131 ve para birimlerini do\u011fru formatta g\u00f6r\u00fcnt\u00fcler (\u00f6rn. T\u00fcrkiye i\u00e7in virg\u00fcl ondal\u0131k ay\u0131r\u0131c\u0131, nokta binlik ay\u0131r\u0131c\u0131).<br \/>\n    *   Baz\u0131 Pipes (\u00f6rn. <code>DatePipe<\/code>, <code>CurrencyPipe<\/code>) iste\u011fe ba\u011fl\u0131 olarak do\u011frudan bir <code>locale<\/code> parametresi alabilir, bu da varsay\u0131lan yerel ayar\u0131 ge\u00e7ersiz k\u0131lman\u0131za olanak tan\u0131r.<\/p>\n<h4>Okunabilirlik ve Bak\u0131m Kolayl\u0131\u011f\u0131<\/h4>\n<p>    *   <strong>Anlaml\u0131 Pipe Adlar\u0131:<\/strong> Kendi \u00f6zel Pipe&#8217;lar\u0131n\u0131z\u0131 olu\u015ftururken, Pipe&#8217;\u0131n amac\u0131n\u0131 a\u00e7\u0131k\u00e7a belirten anlaml\u0131 adlar kullan\u0131n.<br \/>\n    *   <strong>Basit Mant\u0131k:<\/strong> Pipes&#8217;\u0131n i\u00e7inde karma\u015f\u0131k i\u015f mant\u0131\u011f\u0131 yerine, tek ve odaklanm\u0131\u015f bir d\u00f6n\u00fc\u015f\u00fcm g\u00f6revi yapmas\u0131n\u0131 sa\u011flay\u0131n. Karma\u015f\u0131k mant\u0131k genellikle servislerde veya bile\u015fenlerde daha iyi yer al\u0131r.<br \/>\n    *   <strong>A\u015f\u0131r\u0131 Zincirlemeden Ka\u00e7\u0131n\u0131n:<\/strong> \u00c7ok fazla Pipe&#8217;\u0131 zincirlemek \u015fablonunuzu okunaks\u0131z hale getirebilir. E\u011fer bir veri \u00fczerinde \u00e7ok say\u0131da ard\u0131\u015f\u0131k d\u00f6n\u00fc\u015f\u00fcm yapman\u0131z gerekiyorsa, bu d\u00f6n\u00fc\u015f\u00fcmleri bir bile\u015fen metodunda veya \u00f6zel bir Pipe i\u00e7inde birle\u015ftirmeyi d\u00fc\u015f\u00fcnebilirsiniz.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>    Angular&#8217;\u0131n dahili borular\u0131 (Pipes), uygulamalar\u0131n\u0131zdaki veri d\u00f6n\u00fc\u015f\u00fcm ihtiya\u00e7lar\u0131n\u0131 kar\u015f\u0131lamak i\u00e7in g\u00fc\u00e7l\u00fc, esnek ve verimli bir mekanizma sunar. <code>DatePipe<\/code> ile tarihleri formatlamaktan, <code>CurrencyPipe<\/code> ile para birimlerini g\u00f6r\u00fcnt\u00fclemeye, <code>AsyncPipe<\/code> ile asenkron verileri y\u00f6netmeye kadar geni\u015f bir yelpazede kullan\u0131\u015fl\u0131l\u0131k sa\u011flarlar.<\/p>\n<p>    Pipes kullanarak, bile\u015fen s\u0131n\u0131flar\u0131n\u0131z\u0131 temiz tutabilir, \u015fablonlar\u0131n\u0131z\u0131n okunabilirli\u011fini art\u0131rabilir ve veri formatlama mant\u0131\u011f\u0131n\u0131 yeniden kullan\u0131labilir, mod\u00fcler birimler halinde kaps\u00fclleyebilirsiniz. Pure ve Impure Pipes aras\u0131ndaki fark\u0131 anlamak ve bunlar\u0131 do\u011fru senaryolarda kullanmak, uygulaman\u0131z\u0131n performans\u0131n\u0131 optimize etmenin anahtar\u0131d\u0131r. Ayr\u0131ca, Pipes&#8217;\u0131n uluslararas\u0131la\u015fma (i18n) yetenekleriyle entegre olmas\u0131, k\u00fcresel kullan\u0131c\u0131lar i\u00e7in yerelle\u015ftirilmi\u015f deneyimler sunman\u0131z\u0131 kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>    Angular geli\u015ftiricileri olarak, bu dahili borular\u0131 etkin bir \u015fekilde kullanmak, daha temiz, daha s\u00fcrd\u00fcr\u00fclebilir ve daha performansl\u0131 uygulamalar yazman\u0131za yard\u0131mc\u0131 olacakt\u0131r. Dahili borular\u0131n yetersiz kald\u0131\u011f\u0131 durumlarda ise kendi \u00f6zel borular\u0131n\u0131z\u0131 olu\u015fturarak Angular&#8217;\u0131n bu g\u00fc\u00e7l\u00fc \u00f6zelli\u011fini daha da geni\u015fletebilirsiniz. Unutmay\u0131n, iyi kullan\u0131lm\u0131\u015f Pipes, Angular \u015fablonlar\u0131n\u0131z\u0131 hem daha g\u00fc\u00e7l\u00fc hem de daha zarif hale getirir.<br \/>\n<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Angular&#8217;da Dahili Borular (Pipes): Veri D\u00f6n\u00fc\u015f\u00fcm\u00fcnde G\u00fc\u00e7l\u00fc Bir Ara\u00e7\n    Giri\u015f: Angular Pipes Nedir ve Neden \u00d6nemlidir?\n    Angular, mo","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":[1488],"tags":[],"class_list":{"0":"post-39806","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-angular","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>Angular&#039;da Dahili Borular (Pipes): Veri D\u00f6n\u00fc\u015f\u00fcm\u00fcnde G\u00fc\u00e7l\u00fc Bir Ara\u00e7 - 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\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Angular&#039;da Dahili Borular (Pipes): Veri D\u00f6n\u00fc\u015f\u00fcm\u00fcnde G\u00fc\u00e7l\u00fc Bir Ara\u00e7\" \/>\n<meta property=\"og:description\" content=\"Angular&#039;da Dahili Borular (Pipes): Veri D\u00f6n\u00fc\u015f\u00fcm\u00fcnde G\u00fc\u00e7l\u00fc Bir Ara\u00e7   Giri\u015f: Angular Pipes Nedir ve Neden \u00d6nemlidir?   Angular, mo\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-23T23:40:51+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=\"16 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Angular&#8217;da Dahili Borular (Pipes): Veri D\u00f6n\u00fc\u015f\u00fcm\u00fcnde G\u00fc\u00e7l\u00fc Bir Ara\u00e7\",\"datePublished\":\"2026-02-23T23:40:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/\"},\"wordCount\":2727,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Angular\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/\",\"name\":\"Angular'da Dahili Borular (Pipes): Veri D\u00f6n\u00fc\u015f\u00fcm\u00fcnde G\u00fc\u00e7l\u00fc Bir Ara\u00e7 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-23T23:40:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Angular&#8217;da Dahili Borular (Pipes): Veri D\u00f6n\u00fc\u015f\u00fcm\u00fcnde G\u00fc\u00e7l\u00fc Bir Ara\u00e7\"}]},{\"@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":"Angular'da Dahili Borular (Pipes): Veri D\u00f6n\u00fc\u015f\u00fcm\u00fcnde G\u00fc\u00e7l\u00fc Bir Ara\u00e7 - 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\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/","og_locale":"tr_TR","og_type":"article","og_title":"Angular'da Dahili Borular (Pipes): Veri D\u00f6n\u00fc\u015f\u00fcm\u00fcnde G\u00fc\u00e7l\u00fc Bir Ara\u00e7","og_description":"Angular'da Dahili Borular (Pipes): Veri D\u00f6n\u00fc\u015f\u00fcm\u00fcnde G\u00fc\u00e7l\u00fc Bir Ara\u00e7   Giri\u015f: Angular Pipes Nedir ve Neden \u00d6nemlidir?   Angular, mo","og_url":"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-23T23:40:51+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"16 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Angular&#8217;da Dahili Borular (Pipes): Veri D\u00f6n\u00fc\u015f\u00fcm\u00fcnde G\u00fc\u00e7l\u00fc Bir Ara\u00e7","datePublished":"2026-02-23T23:40:51+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/"},"wordCount":2727,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Angular"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/","url":"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/","name":"Angular'da Dahili Borular (Pipes): Veri D\u00f6n\u00fc\u015f\u00fcm\u00fcnde G\u00fc\u00e7l\u00fc Bir Ara\u00e7 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-23T23:40:51+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/angularda-dahili-borular-pipes-veri-donusumunde-guclu-bir-arac\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Angular&#8217;da Dahili Borular (Pipes): Veri D\u00f6n\u00fc\u015f\u00fcm\u00fcnde G\u00fc\u00e7l\u00fc Bir Ara\u00e7"}]},{"@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\/39806","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=39806"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39806\/revisions"}],"predecessor-version":[{"id":39807,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39806\/revisions\/39807"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=39806"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=39806"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=39806"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}