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
Strict yöntemini uygulamanızın herhangi bir parçası için aktif hale getirebilirsiniz. Örneğin:
14
14
`embed:strict-mode/enabling-strict-mode.js`
15
15
16
-
Yukarıdaki örnekte strict yöntem kontrolleri `Header` ve `Footer` bileşenleri için yapılmayacaktır. Ancak `ComponentOne` ve `ComponentTwo` ve onların tüm alt öğeleri için kontroller yapılacaktır.
16
+
Yukarıdaki örnekte strict yöntem kontrolleri `Header` ve `Footer` bileşenleri için *yapılmayacaktır*. Ancak `ComponentOne` ve `ComponentTwo` ve onların tüm alt öğeleri için kontroller yapılacaktır.
17
17
18
-
`Strict Yöntemi`bize şu konularda yardımcı olur:
18
+
`Strict Yöntemi` şu konularda yardımcı olur:
19
19
*[Güvenli olmayan yaşam döngülerine sahip bileşenleri tespit etme](#identifying-unsafe-lifecycles)
20
20
*[Eski string ref API kullanımı hakkında uyarma](#warning-about-legacy-string-ref-api-usage)
21
21
*[Kullanımdan kaldırılmış findDOMNode kullanımı hakkında uyarma](#warning-about-deprecated-finddomnode-usage)
@@ -26,7 +26,7 @@ React'in gelecek sürümlerinde yeni özellikler eklenecektir.
26
26
27
27
### Güvenli olmayan yaşam döngülerine sahip bileşenleri tespit etme {#identifying-unsafe-lifecycles}
28
28
29
-
[Bu blog yazısında](/blog/2018/03/27/update-on-async-rendering.html) açıklandığı gibi, bazı eski yaşam döngüsü metodlarıni asenkron React uygulamalarında kullanmak güvenli değildir. applications. Ancak uygulamanız üçüncü parti kütüphaneler kullanıyorsa bu yaşam döngüsü metodlarının kullanılmadığından emin olmak oldukça zordur. Neyse ki, Strict Yöntemi bize bu konuda yardımcı olabilir!
29
+
[Bu blog yazısında](/blog/2018/03/27/update-on-async-rendering.html) açıklandığı gibi, bazı eski yaşam döngüsü metodlarını asenkron React uygulamalarında kullanmak güvenli değildir. Ancak uygulamanız üçüncü parti kütüphaneler kullanıyorsa bu yaşam döngüsü metodlarının kullanılmadığından emin olmak oldukça zordur. Neyse ki, Strict Yöntemi bize bu konuda yardımcı olabilir!
30
30
31
31
Strict yöntemi etkinleştirildiğinde, React güvenli olmayan yaşam döngüsü kullanan sınıf bileşenlerinin bir listesini toplar ve bu bileşenler hakkında aşağıdaki gibi bir uyarı verir.
32
32
@@ -41,7 +41,7 @@ React, daha önce ref'leri yönetmek için iki yol sunuyordu: Eski string ref AP
41
41
React 16.3, herhangi bir dezavantajı olmadan string ref'in rahatlığını sunan üçüncü bir seçenek getirdi:
Nesne ref'leri büyük ölçüde string ref'lerinin yerine geldiğinden beri Strict yöntemi artık string ref kullanımları konusunda uyarıyor.
44
+
Nesne ref'leri büyük ölçüde string ref'lerinin yerine geldiğinden beri strict yöntemi artık string ref kullanımları konusunda uyarıyor.
45
45
46
46
> **Not:**
47
47
>
@@ -57,8 +57,7 @@ React, sınıf nesne örneği verilen bir DOM düğümünü ağaçta aramak içi
57
57
58
58
`findDOMNode` ayrıca sınıf bileşenlerinde de kullanılabilir ancak bu, bir ebeveynin belirli alt öğelerin render edilmesine izin vererek soyutlama düzeylerini kırıyordu. Bir üst öğe DOM düğümüne erişebileceği için bir bileşenin uygulama ayrıntılarını değiştiremeyeceğiniz bir kodun yeniden düzenlenmesi (refactoring) tehlikesi oluşturur. `findDOMNode` sadece ilk alt öğeyi döndürür fakat Fragment'ler kullanılarak bir bileşenin birden fazla alt öğe render etmesi mümkündür. `findDOMNode` tek seferlik okuma API'sidir. Sadece istendiğinde cevap verir. Bir alt bileşen farklı bir farklı bir düğüm render ediyorsa, bu değişikliği ele almanın bir yolu yoktur. Bu nedenle `findDOMNode` sadece bileşenler asla değişmeyen tek bir DOM düğümü döndürürse işe yarar.
59
59
60
-
61
-
Bunun yerine, bunu özel bileşeninize bir ref geçerek ve [ref yönlendirme](/docs/forwarding-refs.html#forwarding-refs-to-dom-components) ile DOM boyunca ileterek açıkça yapabilirsiniz.
60
+
Bunun yerine, bunu özel bileşeninize bir ref geçerek ve [ref yönlendirme](/docs/forwarding-refs.html#forwarding-refs-to-dom-components) ile DOM boyunca ileterek yapabilirsiniz.
62
61
63
62
Ayrıca bileşeninize bir sarıcı (wrapper) DOM düğümü ekleyebilir ve doğrudan ona bir ref ekleyebilirsiniz.
64
63
@@ -88,13 +87,13 @@ Commit aşaması genellikle hızlıdır fakat render aşaması yavaş olabilir.
88
87
89
88
Render aşaması yaşam döngüleri aşağıdaki sınıf bileşeni metodlarını içerir:
Yukarıdaki metodlar bir kereden fazla çağrılabileceğinden, yan etkiler içermemesi önemlidir. Bu kuralı göz ardı etmek, bellek sızıntıları (memory leak) ve geçersiz uygulama durumu (invalid application state) gibi çeşitli sorunlara yol açabilir. Ne yazık ki bu sorunları tespit etmek zor olabilir çünkü genellikle [belirlenebilir olmayabilirler](https://en.wikipedia.org/wiki/Deterministic_algorithm).
100
99
@@ -113,14 +112,14 @@ Strict yöntemi, yan etkileri otomatik olarak tespit edemez ancak onları daha b
İlk bakışta bu kod sorunlu görünmeyebilir. Ancak `SharedApplicationState.recordEvent`[etkisiz](https://en.wikipedia.org/wiki/Idempotence#Computer_science_meaning) değilse, bu bileşeni birden çok kez başlatmak geçersiz uygulama durumuna yol açabilir. Bu türk ince bir hata geliştirme sırasında ortaya çıkmayabilir veya bunu tutarsız bir şekilde yaparak gözden kaçabilir.
115
+
İlk bakışta bu kod sorunlu görünmeyebilir. Ancak `SharedApplicationState.recordEvent`[etkisiz](https://en.wikipedia.org/wiki/Idempotence#Computer_science_meaning) değilse, bu bileşeni birden çok kez başlatmak geçersiz uygulama durumuna yol açabilir. Bu tür ince bir hata geliştirme sırasında ortaya çıkmayabilir veya bunu tutarsız bir şekilde yaparak gözden kaçabilir.
117
116
118
117
Strict yöntemi, `constructor` gibi metodları kasıtlı olarak iki kere çağırarak, bu gibi desenlerin fark edilmesini sağlar.
119
118
120
119
### Eski context API tespit etme {#detecting-legacy-context-api}
121
120
122
-
Eski context API hataya açıktır ve gelecekteki bir ana sürümde kaldırılacaktır. Hala tüm 16.x sürümleri için çalışır, ancak strict yönteminde şubu uyarı mesajını gösterecektir:
121
+
Eski context API hataya açıktır ve gelecekteki bir ana sürümde kaldırılacaktır. Hala tüm 16.x sürümleri için çalışır, ancak strict yönteminde şu uyarı mesajını gösterecektir:
0 commit comments