You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/content/learn/conditional-rendering.md
+24-24Lines changed: 24 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ title: Koşullu Olarak Render Etmek
4
4
5
5
<Intro>
6
6
7
-
React bileşenlerinizde çoğu zaman farklı koşullar altında farklı şeyler render etmek isteyeceksiniz. React'de, `if` ifadesi, `&&`, ve `? :` gibi Javascript syntax'ine ait operatörleri kullanarak koşullu olarak JSX render edebilirsiniz.
7
+
React bileşenlerinizde çoğu zaman farklı koşullar altında farklı şeyler render etmek isteyeceksiniz. React'de, `if` ifadesi, `&&`, ve `? :` gibi JavaScript syntax'ine ait operatörleri kullanarak koşullu olarak JSX render edebilirsiniz.
8
8
9
9
</Intro>
10
10
@@ -52,7 +52,7 @@ export default function PackingList() {
52
52
53
53
</Sandpack>
54
54
55
-
Bazı `Item` bileşenlerinin `isPacked` prop'unun `false` yerine `true` olduğuna dikkat edin. Eğer bileşen prop'u `isPacked={true}` ise eşyaların yanında bir tik (✔) işareti olmalı.
55
+
Bazı `Item` bileşenlerinin `isPacked` prop'unun `false`(`yanlış`) yerine `true` (`doğru`) olduğuna dikkat edin. Eğer bileşen prop'u `isPacked={true}` ise eşyaların yanında bir tik (✔) işareti olmalı.
56
56
57
57
Bunu bir [`if`/`else` ifadesi](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else) olarak şöyle yazabilirsiniz:
58
58
@@ -63,7 +63,7 @@ if (isPacked) {
63
63
return <li className="item">{name}</li>;
64
64
```
65
65
66
-
Eğer `isPacked` prop'u `true` ise, bu kod **farklı bir JSX ağacı döndürür.** Bu değişiklikle birlikte, bazı eşya isimleri yanına tik işareti gelir:
66
+
Eğer `isPacked` prop'u `true` ise, bu kod **farklı bir JSX ağacı döndürür.** Bu değişiklikle birlikte, bazı eşya isimlerinin yanına tik işareti gelir:
67
67
68
68
<Sandpack>
69
69
@@ -102,11 +102,11 @@ export default function PackingList() {
102
102
103
103
Her iki durumda da döndürülenleri düzenlemeyi deneyin ve sonucun nasıl değiştiğini görün!
104
104
105
-
JavaScript'in `if` ve `return` ifadeleriyle nasıl dallanma mantığı yarattığınıza dikkat edin. React'te kontrol akışı (koşullar gibi) JavaScript tarafından gerçekleştirilir.
105
+
JavaScript'in `if` ve `return` ifadeleriyle nasıl branching (dallanma) mantığı yarattığınıza dikkat edin. React'te kontrol akışı (koşullar gibi) JavaScript tarafından gerçekleştirilir.
106
106
107
107
### `null` ile koşullu olarak hiçbir şey döndürmemek {/*conditionally-returning-nothing-with-null*/}
108
108
109
-
Bazı durumlarda hiçbir şey render etmemek isteyeceksiniz. Örneğin, bavula konmuş eşyaların listenizde görünmesini istemiyorsunuz. Bir bileşen bir şey döndürmek zorundadır. Bu durumda `null` döndürebilirsiniz:
109
+
Bazı durumlarda hiçbir şey render etmemek isteyebilirsiniz. Örneğin, bavula konmuş eşyaların listenizde görünmesini istemiyorsunuz ancak bir bileşen bir şey döndürmek zorundadır. Bu durumda `null` döndürebilirsiniz:
110
110
111
111
```js
112
112
if (isPacked) {
@@ -115,7 +115,7 @@ if (isPacked) {
115
115
return <li className="item">{name}</li>;
116
116
```
117
117
118
-
Eğer `isPacked`true (doğru) ise, bileşen hiçbir şey yani `null`döndürecek. Aksi takdirde, render etmek içinJSX'i döndürecek.
118
+
Eğer `isPacked`prop'u true (doğru) ise, bileşen hiçbir şey yani `null` döndürecektir. Aksi takdirde, render etmek için JSX'i döndürecektir.
119
119
120
120
<Sandpack>
121
121
@@ -152,7 +152,7 @@ export default function PackingList() {
152
152
153
153
</Sandpack>
154
154
155
-
Uygulamada, bir bileşenin `null` döndürmesi yaygın olarak kullanılan bir şey değildir çünkü bileşeni render etmek isteyen başka bir geliştiricinin şaşırtabilir. Daha sık olarak, bir bileşeni üst bileşeninin JSX'ine koşullu olarak dahil eder veya hariç tutarsınız. Şimdi bunu nasıl yapacağımızı öğrenelim!
155
+
Uygulamada, bir bileşenin `null` döndürmesi yaygın olarak kullanılan bir şey değildir çünkü bileşeni render etmek isteyen başka bir geliştiriciyi şaşırtabilir. Daha sık olarak, bir bileşeni üst bileşeninin JSX'ine koşullu olarak dahil eder veya hariç tutarsınız. Şimdi bunu nasıl yapacağımızı öğrenelim!
156
156
157
157
## JSX'i koşullu olarak dahil etmek {/*conditionally-including-jsx*/}
158
158
@@ -177,13 +177,13 @@ if (isPacked) {
177
177
return <li className="item">{name}</li>;
178
178
```
179
179
180
-
Bu tekrarlamalar zararlı olmasa bile yazdığınız kodu idame ettirmek zorlaşacaktır. Ya `className`'i değiştirmek isterseniz? Bu işlemi kodunuzda iki yerde yapmak zorundasınız! Bu gibi durumlarda, kodunuz daha [DRY.](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself) (Tekrar Etme Kendini) hale getirmek için koşullu olarak küçük bir JSX ekleyebilirsiniz.
180
+
Bu tekrarlamalar zararlı olmasa bile yazdığınız kodu idame ettirmek zorlaşacaktır. Ya`className`'i değiştirmek isterseniz? Bu işlemi kodunuzda iki yerde yapmak zorundasınız! Bu gibi durumlarda, kodunuz daha [DRY.](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself) (Tekrar Etme Kendini - TEK) hale getirmek için koşullu olarak küçük bir JSX ekleyebilirsiniz.
JavaScript, koşullu bir ifade yazmak için kompakt bir syntax'e sahiptir -- [koşullu operatör](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator) ya da "ternary operatörü".
185
185
186
-
Bunun yerine:
186
+
Böyle yazmak yerine:
187
187
188
188
```js
189
189
if (isPacked) {
@@ -202,13 +202,13 @@ return (
202
202
);
203
203
```
204
204
205
-
Bu kodu şöyle okuyabilirsiniz: *"eğer `isPacked` true (doğru) ise, o zaman (`?`) `name + ' ✔'` render et, aksi halde (`:`) `name` render et"*.
205
+
Bu kodu şöyle okuyabilirsiniz:*"eğer `isPacked` prop'u true (doğru) ise, o zaman (`?`) `name + ' ✔'` render et, aksi halde (`:`) `name` render et"*.
206
206
207
207
<DeepDive>
208
208
209
209
#### Bu iki örnek tamamen eşdeğer mi? {/*are-these-two-examples-fully-equivalent*/}
210
210
211
-
Obje tabanlı bir programlama geçmişiniz varsa, yukarıdaki iki örneğin biraz farklı olduğunu çünkü birinin iki farklı `<li>` kopyası oluşturabileceğini düşünebilirsiniz. Ancak JSX öğeleri herhangi bir dahili state'e sahip olmadıkları ve gerçek DOM node'u olmadıkları için bir "kopya" değildir. JSX öğeleri aynı kılavuzlar gibi tanımlardır. Yani bu iki örnek birbiriyle **tamamen** aynıdır. [State'i korumak ve sıfırlamak](/learn/preserving-and-resetting-state) bunun nasıl çalıştığını ayrıntılı bir şekilde anlatmaktadır.
211
+
Obje tabanlı bir programlama geçmişiniz varsa, yukarıdaki iki örneğin biraz farklı olduğunu çünkü birinin iki farklı `<li>` kopyası oluşturabileceğini düşünebilirsiniz. AncakJSX öğeleri herhangi bir dahili state'e sahip olmadıkları ve gerçek DOM node'u olmadıkları için bir "kopya" değildir. JSX öğeleri aynı blueprint'ler (kılavuz) gibi tanımlardır. Yani bu iki örnek birbiriyle **tamamen** aynıdır. [State'i korumak ve sıfırlamak](/learn/preserving-and-resetting-state) bunun nasıl çalıştığını ayrıntılı bir şekilde anlatmaktadır.
212
212
213
213
</DeepDive>
214
214
@@ -256,11 +256,11 @@ export default function PackingList() {
256
256
257
257
</Sandpack>
258
258
259
-
Kodunuzu bu şekilde yazmak basit koşullu ifadeler için güzel çalışmakta ancak dikkatli kullanmakta fayda var. Eğer bileşenleriniz iç içe geçmiş çok fazla koşullu ifadeden oluşuyorsa, ifadeyi temizlemek için yeni bir alt bileşen oluşturabilirsiniz. React'te, biçimlendirme kodunuzun bir parçasıdır dolayısıyla karmaşık ifadeleri düzenlemek için değişkenler ve fonksiyonlar gibi araçları kullanabilirsiniz.
259
+
Kodunuzu bu şekilde yazmak basit koşullu ifadeler için güzel çalışmakta ancak dikkatli kullanmakta fayda vardır. Eğer bileşenleriniz iç içe geçmiş çok fazla koşullu ifadeden oluşuyorsa, ifadeyi temizlemek için yeni bir alt bileşen oluşturabilirsiniz. React'te, biçimlendirme kodunuzun bir parçasıdır dolayısıyla karmaşık ifadeleri düzenlemek için değişkenler ve fonksiyonlar gibi araçları kullanabilirsiniz.
260
260
261
261
### Mantıksal AND (VE) operatörü (`&&`) {/*logical-and-operator-*/}
262
262
263
-
Karşınıza sıkça çıkacak bir diğer kısayol ise [JavaScript mantıksal AND (VE) (`&&`) operatörüdür.](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_AND#:~:text=The%20logical%20AND%20(%20%26%26%20)%20operator,it%20returns%20a%20Boolean%20value.) Bu operatör React bileşeni içinde genellikle koşul doğru olduğunda bir kısım JSX'i render etmek **aksi halde hiçbir şey render etmemek** istediğinizde karşınıza çıkar. `&&` ifadesi ile, yalnızca `isPacked` prop'u `true (doğru)` ise tik işaretini eşyanın isminin yanına koyabilirsiniz.
263
+
Karşınıza sıkça çıkacak bir diğer kısayol ise [JavaScript mantıksal AND (VE) (`&&`) operatörüdür.](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_AND#:~:text=The%20logical%20AND%20(%20%26%26%20)%20operator,it%20returns%20a%20Boolean%20value.) Bu operatör React bileşeni içinde genellikle koşul doğru olduğunda bir kısım JSX'i render etmek **aksi halde hiçbir şey render etmemek** istediğiniz durumlarda kullanılır. `&&` ifadesi ile, yalnızca `isPacked` prop'u `true (doğru)` ise tik işaretini eşyanın isminin yanına koyabilirsiniz.
264
264
265
265
```js
266
266
return (
@@ -310,7 +310,7 @@ export default function PackingList() {
310
310
311
311
</Sandpack>
312
312
313
-
[JavaScript && operatörü](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_AND) eğer ifademizin sol tarafı (koşulumuz) `true` (`doğru`) ise ifadenin sağ tarafındaki değeri döndürür. Ama koşulumuz `false` (`yanlış`) ise, bütün ifademiz `false` (`yanlış`) olur. React, `false`'u JSX ağacında tıpkı `null` ya da `undefined` gibi bir "delik" olarak kabul eder ve geriye hiçbir şey döndürmez.
313
+
[JavaScript && operatörü](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_AND) eğer ifademizin sol tarafı (koşulumuz) `true (doğru)`ise ifadenin sağ tarafındaki değeri döndürür. Ama koşulumuz `false (yanlış)` ise, bütün ifademiz `false (yanlış)` olur. React, `false`'u JSX ağacında tıpkı `null` ya da `undefined` gibi bir "delik" olarak kabul eder ve geriye hiçbir şey döndürmez.
314
314
315
315
<Pitfall>
316
316
@@ -320,7 +320,7 @@ JavaScript koşulu test etmek için operatörün sol tarafını otomatik olarak
320
320
321
321
Örneğin, `messageCount && <p>New messages</p>` gibi bir kod yazmak yaygın bir hatadır. `messageCount``0` olduğunda hiçbir şey render etmediğini varsaymak kolaydır ancak React gerçekte `0` render etmektedir.
322
322
323
-
Bu durumu düzeltmek için sol tarafı boole çevirmek gereklidir:`messageCount > 0 && <p>New messages</p>`.
323
+
Bu durumu düzeltmek için sol tarafı boolean'a (boole) çevirmek gereklidir: `messageCount > 0 && <p>New messages</p>`.
324
324
325
325
</Pitfall>
326
326
@@ -332,7 +332,7 @@ Kısayollar düz kod yazmanın önüne geçtiği zaman, bir `if` ifadesi ve bir
332
332
let itemContent = name;
333
333
```
334
334
335
-
Eğer `isPacked``true` (`doğru`) ise, bir JSX ifadesini `itemContent`'e tekrardan atamak için bir `if` ifadesi kullanın:
335
+
Eğer `isPacked``true (doğru)` ise, bir JSX ifadesini `itemContent`'e tekrardan atamak için bir `if` ifadesi kullanın:
336
336
337
337
```js
338
338
if (isPacked) {
@@ -348,7 +348,7 @@ if (isPacked) {
348
348
</li>
349
349
```
350
350
351
-
Bu syntax en ayrıntılı ama aynı zaman en esnek olanıdır. Aşağıda nasıl çalıştığını görebilirsiniz:
351
+
Bu syntax en ayrıntılı ama aynı zamanda en esnek olanıdır. Aşağıda nasıl çalıştığını görebilirsiniz:
352
352
353
353
<Sandpack>
354
354
@@ -443,9 +443,9 @@ Eğer JavaScript diline aşina değilseniz, bu çeşitli syntax'ler ilk başta k
443
443
* React'te, branching (dallanma) mantığını JavaScript ile kontrol edersiniz.
444
444
* `if` ifadesini kullanarak koşullu olarak bir JSX ifadesi döndürebilirsiniz.
445
445
* Bir JSX ifadesini koşullu olarak bir değişkene atayabilir ve süslü parantez kullanarak ("{}") başka bir JSX'in içine dahil edebilirsiniz.
446
-
* JSX'te, `{cond ? <A /> : <B />}` ifadesi şu anlama gelmektedir: *"eğer `cond`ise, `<A />`'yı render et, aksi halde `<B />`'yi render et"*.
447
-
* JSX'te, `{cond && <A />}` ifadesi şu anlama gelmektedir: *"eğer `cond`ise, `<A />`'yı render et, aksi halde hiçbir şey render etme"*.
448
-
* Kod tabanlarında bu kısayolları görmek yaygındır, ancak düz `if` ifadesini tercih ederseniz kısayolları kullanmak zorunda değilsiniz.
446
+
* JSX'te, `{cond ? <A /> : <B />}` ifadesi şu anlama gelmektedir: *"eğer `cond`varsa, `<A />`'yı render et, aksi halde `<B />`'yi render et"*.
447
+
* JSX'te, `{cond && <A />}` ifadesi şu anlama gelmektedir: *"eğer `cond`varsa, `<A />`'yı render et, aksi halde hiçbir şey render etme"*.
448
+
* Kod tabanlarında bu kısayolları görmek yaygındır, ancak kendiniz düz `if` ifadesini tercih edebilirsiniz.
449
449
450
450
</Recap>
451
451
@@ -533,15 +533,15 @@ export default function PackingList() {
533
533
534
534
</Solution>
535
535
536
-
#### Eşyanın önemini `&&` ile göster {/*show-the-item-importance-with-*/}
536
+
#### Eşyanın importance (önemini) `&&` operatörü ile göster {/*show-the-item-importance-with-*/}
537
537
538
538
Bu örnekte, herbir `Item` sayısal bir `importance` prop'u almaktadır. `&&` operatörünü kullanarak "importance" (önem) değeri 0'dan büyük olanların yanında italik olarak "_(Importance: X)_" render edebilirsiniz. Eşyalarınızın listesinin son hali şu şekilde olmalıdır:
539
539
540
540
* Space suit _(Importance: 9)_
541
541
* Helmet with a golden leaf
542
542
* Photo of Tam _(Importance: 6)_
543
543
544
-
İki label (etiket) arasına boşluk koymayı unutmayın!
544
+
İkisi arasına boşluk koymayı unutmayın!
545
545
546
546
<Sandpack>
547
547
@@ -625,11 +625,11 @@ export default function PackingList() {
625
625
626
626
`importance && ...` yerine `importance > 0 && ...` yazmanız gerektiğini unutmayın. Böylelikle `importance` prop'u `0` olanlar render edilmemiş olacaktır.
627
627
628
-
Bu çözümde, eşyanın ismi ve importance yazısı arasına boşluk koyabilmek için iki farklı koşul kullanılmalıdır. Alternatif olarak, zaten boşluğu olan bir fragment `importance > 0 && <> <i>...</i></>` kullanabilir ya da `<i>` içine bir boşluk ekleyebilirsiniz `importance > 0 && <i> ...</i>`.
628
+
Bu çözümde, eşyanın ismi ve importance(önem) yazısı arasına boşluk koyabilmek için iki farklı koşul kullanılmalıdır. Alternatif olarak, zaten boşluğu olan bir fragment `importance > 0 && <> <i>...</i></>` kullanabilir ya da `<i>` içine bir boşluk ekleyebilirsiniz `importance > 0 && <i> ...</i>`.
629
629
630
630
</Solution>
631
631
632
-
#### Bir dizi `? :`ifadesini`if`syntax'i ve değişkenler ile değiştir {/*refactor-a-series-of---to-if-and-variables*/}
632
+
#### Bir dizi `? :`operatörünü`if`ifadesi ve değişkenler ile değiştir {/*refactor-a-series-of---to-if-and-variables*/}
633
633
634
634
`Drink` bileşeni, `name` prop'unun `"tea"` ya da `"coffee"` olduğuna bağlı olarak farklı bilgiler göstermek için bir dizi ? : koşulunu kullanır. Buradaki sorun her içecek hakkındaki bilgilerin birden fazla koşula bağlı olmasıdır. Bu kodu üç tane `? :` koşulu yerine tek bir `if` ifadesi kullanacak şekilde yeniden düzenleyin.
0 commit comments