Skip to content

Commit 1217c9f

Browse files
committed
sync-2da4f7fb
1 parent 62fe9cd commit 1217c9f

File tree

4 files changed

+20
-154
lines changed

4 files changed

+20
-154
lines changed

package.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,7 @@
3535
"classnames": "^2.2.6",
3636
"debounce": "^1.2.1",
3737
"github-slugger": "^1.3.0",
38-
<<<<<<< HEAD
39-
"next": "15.4.8",
40-
=======
4138
"next": "15.1.11",
42-
>>>>>>> 2da4f7fbd90ddc09835c9f85d61fd5644a271abc
4339
"next-remote-watch": "^1.0.0",
4440
"parse-numeric-range": "^1.2.0",
4541
"react": "^19.0.0",

src/content/reference/react/useEffect.md

Lines changed: 18 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,9 @@ function ChatRoom({ roomId }) {
4444
4545
#### Parametreler {/*parameters*/}
4646
47-
<<<<<<< HEAD
48-
* `setup`: Effect'inizin mantığını içeren fonksiyon. Kurulum (setup) fonksiyonunuz isteğe bağlı olarak *temizleme (cleanup)* fonksiyonu da döndürebilir. Bileşeniniz DOM'a eklendiğinde, React kurulum fonksiyonunuzu çalıştıracaktır. Değişen bağımlılıklar ile her yeniden render işleminden sonra, React önce temizleme fonksiyonunu (eğer sağladıysanız) eski değerlerle çalıştıracak ve ardından kurulum fonksiyonunuzu yeni değerlerle çalıştıracaktır. Bileşeniniz DOM'dan kaldırıldıktan sonra, React temizleme fonksiyonunuzu çalıştıracaktır.
49-
50-
* **Opsiyonel** `bağımlılıklar`: `kurulum` (`setup`) kodunun içinde referansı olan tüm reaktif değerlerin listesi. Reaktif değerler prop'ları, state'i ve bileşeninizin gövdesi içinde bildirilen tüm değişkenleri ve fonksiyonları içerir. Linter'ınız [React için yapılandırılmış](/learn/editor-setup#linting) ise, her reaktif değerin bağımlılık olarak doğru bir şekilde belirtildiğini doğrulayacaktır. Bağımlılık listesi sabit sayıda öğeye sahip olmalı ve `[dep1, dep2, dep3]` şeklinde satır içinde yazılmalıdır. React, [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is) karşılaştırmasını kullanarak her bağımlılığı önceki değeri ile karşılaştırır. Eğer bağımlılık listesini boş bırakırsanız, Effect'iniz her yeniden render'dan sonra tekrar çalışacaktır. [Bağımlılık dizisi iletmenin, boş dizi iletmenin ve hiç bağımlılık olmaması arasındaki farkı inceleyin.](#examples-dependencies)
51-
=======
52-
* `setup`: The function with your Effect's logic. Your setup function may also optionally return a *cleanup* function. When your [component commits](/learn/render-and-commit#step-3-react-commits-changes-to-the-dom), React will run your setup function. After every commit with changed dependencies, React will first run the cleanup function (if you provided it) with the old values, and then run your setup function with the new values. After your component is removed from the DOM, React will run your cleanup function.
53-
54-
* **optional** `dependencies`: The list of all reactive values referenced inside of the `setup` code. Reactive values include props, state, and all the variables and functions declared directly inside your component body. If your linter is [configured for React](/learn/editor-setup#linting), it will verify that every reactive value is correctly specified as a dependency. The list of dependencies must have a constant number of items and be written inline like `[dep1, dep2, dep3]`. React will compare each dependency with its previous value using the [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is) comparison. If you omit this argument, your Effect will re-run after every commit of the component. [See the difference between passing an array of dependencies, an empty array, and no dependencies at all.](#examples-dependencies)
55-
>>>>>>> 2da4f7fbd90ddc09835c9f85d61fd5644a271abc
47+
* `setup`: Effect’inizin mantığını içeren fonksiyondur. `setup` fonksiyonunuz isteğe bağlı olarak bir *cleanup* (temizleme) fonksiyonu da döndürebilir. Bileşeniniz [commit edildiğinde](/learn/render-and-commit#step-3-react-commits-changes-to-the-dom), React `setup` fonksiyonunu çalıştırır. Bağımlılıkları değişen her commit’ten sonra React, önce (varsa) eski değerlerle *cleanup* fonksiyonunu çalıştırır, ardından yeni değerlerle `setup` fonksiyonunu tekrar çalıştırır. Bileşeniniz DOM’dan kaldırıldıktan sonra ise React *cleanup* fonksiyonunu çalıştırır.
48+
49+
* **opsiyonel** `dependencies`: `setup` kodu içinde referans verilen tüm **reactive values**’ların listesidir. Reactive values; props, state ve bileşen gövdesi içinde doğrudan tanımlanan tüm değişkenler ve fonksiyonları kapsar. Eğer linter’ınız [React için yapılandırılmışsa](/learn/editor-setup#linting), her reactive value’nun dependency olarak doğru şekilde belirtildiğini doğrular. Dependency listesi sabit sayıda öğe içermeli ve `[dep1, dep2, dep3]` şeklinde inline olarak yazılmalıdır. React, her bir dependency’yi önceki değeriyle [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is) karşılaştırması kullanarak kıyaslar. Bu argümanı atladığınızda, Effect’iniz bileşenin her commit’inden sonra yeniden çalışır. [Dependency array verilmesi, boş array verilmesi ve hiç dependency verilmemesi arasındaki farkı inceleyin.](#examples-dependencies)
5650
5751
#### Dönüş Değeri {/*returns*/}
5852
@@ -110,27 +104,15 @@ function ChatRoom({ roomId }) {
110104
111105
**React, kurulum ve temizleme fonksiyonlarınızı gerektiğinde birden çok kez olabilecek şekilde çağırır:**
112106
113-
<<<<<<< HEAD
114-
1. <CodeStep step={1}>Kurulum kodunuz</CodeStep> bileşeniniz sayfaya eklendiğinde çalışır *(DOM'a eklendiğinde)*.
115-
2. Bileşeninizin <CodeStep step={3}>bağımlılıklarının</CodeStep> değiştiği her yeniden render etmeden sonra:
116-
- İlk olarak, <CodeStep step={2}>temizleme kodunuz</CodeStep> eski prop'lar ve state ile çalışır.
117-
- Daha sonra, <CodeStep step={1}>kurulum kodunuz</CodeStep> yeni prop'lar ve state ile çalışır.
118-
3. <CodeStep step={2}>temizleme kodunuz</CodeStep> son kez bileşeniniz sayfadan kaldırıldığında çalışır *(DOM'dan kaldırıldığında).*
119-
=======
120-
1. Your <CodeStep step={1}>setup code</CodeStep> runs when your component is added to the page *(mounts)*.
121-
2. After every commit of your component where the <CodeStep step={3}>dependencies</CodeStep> have changed:
122-
- First, your <CodeStep step={2}>cleanup code</CodeStep> runs with the old props and state.
123-
- Then, your <CodeStep step={1}>setup code</CodeStep> runs with the new props and state.
124-
3. Your <CodeStep step={2}>cleanup code</CodeStep> runs one final time after your component is removed from the page *(unmounts).*
125-
>>>>>>> 2da4f7fbd90ddc09835c9f85d61fd5644a271abc
107+
1. Bileşeniniz sayfaya eklendiğinde *(mount olurken)* <CodeStep step={1}>setup code</CodeStep> çalışır.
108+
2. <CodeStep step={3}>dependencies</CodeStep>’lerin değiştiği her bileşen commit’inden sonra:
109+
- Önce, <CodeStep step={2}>cleanup code</CodeStep> eski props ve state değerleriyle çalışır.
110+
- Ardından, <CodeStep step={1}>setup code</CodeStep> yeni props ve state değerleriyle çalışır.
111+
3. Bileşeniniz sayfadan kaldırıldıktan *(unmount olduktan)* sonra <CodeStep step={2}>cleanup code</CodeStep> son bir kez daha çalışır.
126112
127113
**Yukarıdaki örneği biraz açıklayalım.**
128114
129-
<<<<<<< HEAD
130-
Yukarıdaki `ChatRoom` bileşeni sayfaya eklendiğinde, başlangıç `serverUrl` ve `roomId` ile sohbet odasına bağlanacaktır. Eğer `serverUrl` veya `roomId`'den biri yeniden render yüzünden değişirse (diyelim ki kullanıcı başka bir sohbet odasını seçerse), Effect'iniz önceki odayla *bağlantısını kesecek ve bir sonraki odaya bağlanacaktır.* `ChatRoom` bileşeniniz sayfadan kaldırıldığında, Effect'iniz son bir defa bağlantıyı kesecektir.
131-
=======
132-
When the `ChatRoom` component above gets added to the page, it will connect to the chat room with the initial `serverUrl` and `roomId`. If either `serverUrl` or `roomId` change as a result of a commit (say, if the user picks a different chat room in a dropdown), your Effect will *disconnect from the previous room, and connect to the next one.* When the `ChatRoom` component is removed from the page, your Effect will disconnect one last time.
133-
>>>>>>> 2da4f7fbd90ddc09835c9f85d61fd5644a271abc
115+
Yukarıdaki `ChatRoom` bileşeni sayfaya eklendiğinde, başlangıçtaki `serverUrl` ve `roomId` ile chat odasına bağlanır. Eğer bir commit sonucunda `serverUrl` veya `roomId` değişirse (örneğin kullanıcı bir dropdown üzerinden farklı bir chat odası seçerse), Effect’iniz *önce önceki odadan bağlantıyı keser, ardından yeni odaya bağlanır.* `ChatRoom` bileşeni sayfadan kaldırıldığında ise Effect’iniz son bir kez daha bağlantıyı keser.
134116
135117
**Geliştirme sırasında [hataları bulmanıza yardımcı olmak](/learn/synchronizing-with-effects#step-3-add-cleanup-if-needed) için React, <CodeStep step={1}>kurulum</CodeStep> ve <CodeStep step={2}>temizleme</CodeStep> kodunu <CodeStep step={1}>kurulum</CodeStep>'dan önce son kez çalıştırır.** Bu, Effect mantığınızın doğru uygulandığını doğrulayan bir stres testidir. Bu, gözle görünür sorunlara neden oluyorsa, temizleme fonksiyonunuzda bazı mantık hataları vardır. Temizleme fonksiyonu, kurulum fonksiyonunun yaptığı her şeyi durdurmalı ya da geri almalıdır. Temel kural, kullanıcı bir kez çağrılan kurulum (son üründe olduğu gibi) ile *kurulum* → *temizleme* → *kurulum* sekansı (geliştirme sırasında olduğu gibi) arasındaki farkı ayırt etmemelidir. [Sık kullanılan çözümlere göz gezdirin.](/learn/synchronizing-with-effects#how-to-handle-the-effect-firing-twice-in-development)
136118
@@ -1165,11 +1147,7 @@ useEffect(() => {
11651147
11661148
#### Bağımlılık dizisi iletme {/*passing-a-dependency-array*/}
11671149
1168-
<<<<<<< HEAD
1169-
Eğer bağımlılıkları belirtirseniz, Effect'iniz **ilk render'dan _ve_ değişen bağlımlılıklarla yeniden render'lardan sonra çalışacaktır.**
1170-
=======
1171-
If you specify the dependencies, your Effect runs **after the initial commit _and_ after commits with changed dependencies.**
1172-
>>>>>>> 2da4f7fbd90ddc09835c9f85d61fd5644a271abc
1150+
Eğer dependency’leri belirtirseniz, Effect’iniz **ilk commit’ten sonra _ve_ dependency’lerin değiştiği commit’lerden sonra** çalışır.
11731151
11741152
```js {3}
11751153
useEffect(() => {
@@ -1266,11 +1244,7 @@ button { margin-left: 5px; }
12661244
12671245
#### Boş bağımlılık dizisi iletmek {/*passing-an-empty-dependency-array*/}
12681246
1269-
<<<<<<< HEAD
1270-
Effect'iniz gerçekten reaktif değerler kullanmıyorsa, Effect'iniz sadece **ilk render'dan sonra** çalışacaktır.
1271-
=======
1272-
If your Effect truly doesn't use any reactive values, it will only run **after the initial commit.**
1273-
>>>>>>> 2da4f7fbd90ddc09835c9f85d61fd5644a271abc
1247+
Eğer Effect’iniz gerçekten hiçbir **reactive value** kullanmıyorsa, **yalnızca ilk commit’ten sonra** çalışır.
12741248
12751249
```js {3}
12761250
useEffect(() => {
@@ -1347,11 +1321,7 @@ export function createConnection(serverUrl, roomId) {
13471321

13481322
#### Hiçbir bağımlılık dizisi iletmemek {/*passing-no-dependency-array-at-all*/}
13491323

1350-
<<<<<<< HEAD
1351-
Hiçbir bağımlılık dizisi iletmezseniz, Effect'iniz bileşeninizin **herbir render'ından (ve yeniden render'ından)** sonra çalışacaktır.
1352-
=======
1353-
If you pass no dependency array at all, your Effect runs **after every single commit** of your component.
1354-
>>>>>>> 2da4f7fbd90ddc09835c9f85d61fd5644a271abc
1324+
Eğer hiç dependency array geçmezseniz, Effect’iniz bileşeninizin **her bir commit’inden sonra** çalışır.
13551325

13561326
```js {3}
13571327
useEffect(() => {
@@ -1512,11 +1482,7 @@ Artık `count + 1` yerine `c => c + 1` ilettiğimiz için, [Effect'inizin `count
15121482
15131483
### Gereksiz nesne bağımlılıklarını kaldırma {/*removing-unnecessary-object-dependencies*/}
15141484
1515-
<<<<<<< HEAD
1516-
Eğer Effect'iniz render esnasında oluşturulan bir nesneye veya fonksiyona bağımlıysa, Effect çok sık çalışabilir. Örneğin bu Effect, `options` nesnesi [her render için farklı olduğundan](/learn/removing-effect-dependencies#does-some-reactive-value-change-unintentionally) her render'dan sonra yeniden sohbete bağlanır:
1517-
=======
1518-
If your Effect depends on an object or a function created during rendering, it might run too often. For example, this Effect re-connects after every commit because the `options` object is [different for every render:](/learn/removing-effect-dependencies#does-some-reactive-value-change-unintentionally)
1519-
>>>>>>> 2da4f7fbd90ddc09835c9f85d61fd5644a271abc
1485+
Eğer Effect’iniz render sırasında oluşturulan bir **object** veya **function**’a bağlıysa, gereğinden fazla çalışabilir. Örneğin, aşağıdaki Effect her commit’ten sonra yeniden bağlanır çünkü `options` objesi [her render’da farklıdır:](/learn/removing-effect-dependencies#does-some-reactive-value-change-unintentionally)
15201486
15211487
```js {6-9,12,15}
15221488
const serverUrl = 'https://localhost:1234';
@@ -1533,11 +1499,7 @@ function ChatRoom({ roomId }) {
15331499
const connection = createConnection(options); // Effect içinde kullanılır
15341500
connection.connect();
15351501
return () => connection.disconnect();
1536-
<<<<<<< HEAD
1537-
}, [options]); // 🚩 Bunun neticesinde, bu bağımlılıklar yeniden render'da her zaman farklıdır
1538-
=======
1539-
}, [options]); // 🚩 As a result, these dependencies are always different on a commit
1540-
>>>>>>> 2da4f7fbd90ddc09835c9f85d61fd5644a271abc
1502+
}, [options]); // 🚩 Sonuç olarak, bu dependency’ler her commit’te her zaman farklıdır
15411503
// ...
15421504
```
15431505
@@ -1623,11 +1585,7 @@ Bu çözümle birlikte, input'a yazmak sohbete tekrar bağlanmayacaktır. Her re
16231585
16241586
### Gereksiz fonksiyon bağımlılıklarını kaldırma {/*removing-unnecessary-function-dependencies*/}
16251587
1626-
<<<<<<< HEAD
1627-
Eğer Effect'iniz render esnasında oluşturulan bir nesneye veya fonksiyona bağımlıysa, Effect çok sık çalışabilir. Örneğin bu Effect, `createOptions` fonksiyonu [her render'da farklı olduğundan](/learn/removing-effect-dependencies#does-some-reactive-value-change-unintentionally) her render'dan sonra yeniden sohbete bağlanır:
1628-
=======
1629-
If your Effect depends on an object or a function created during rendering, it might run too often. For example, this Effect re-connects after every commit because the `createOptions` function is [different for every render:](/learn/removing-effect-dependencies#does-some-reactive-value-change-unintentionally)
1630-
>>>>>>> 2da4f7fbd90ddc09835c9f85d61fd5644a271abc
1588+
Eğer Effect’iniz render sırasında oluşturulan bir **object** veya **function**’a bağlıysa, gereğinden fazla çalışabilir. Örneğin, aşağıdaki Effect her commit’ten sonra yeniden bağlanır çünkü `createOptions` fonksiyonu [her render’da farklıdır:](/learn/removing-effect-dependencies#does-some-reactive-value-change-unintentionally)
16311589
16321590
```js {4-9,12,16}
16331591
function ChatRoom({ roomId }) {
@@ -1645,19 +1603,11 @@ function ChatRoom({ roomId }) {
16451603
const connection = createConnection();
16461604
connection.connect();
16471605
return () => connection.disconnect();
1648-
<<<<<<< HEAD
1649-
}, [createOptions]); // 🚩 Bunun neticesinde, bu bağımlılıklar yeniden render'da her zaman farklıdır
1650-
// ...
1651-
```
1652-
1653-
Her yeniden render'da sıfırdan bir fonksiyon oluşturmak kendi başına bir sorun değildir. Bunu optimize etmenize gerek yoktur. Ancak fonksiyonu Effect'inizin bağımlılığı olarak kullanırsanız, Effect'inizin her yeniden render'dan sonra yeniden çalışmasına neden olacaktır.
1654-
=======
1655-
}, [createOptions]); // 🚩 As a result, these dependencies are always different on a commit
1606+
}, [createOptions]); // 🚩 Sonuç olarak, bu dependency’ler her commit’te her zaman farklıdır
16561607
// ...
16571608
```
16581609
1659-
By itself, creating a function from scratch on every re-render is not a problem. You don't need to optimize that. However, if you use it as a dependency of your Effect, it will cause your Effect to re-run after every commit.
1660-
>>>>>>> 2da4f7fbd90ddc09835c9f85d61fd5644a271abc
1610+
Tek başına, her yeniden render’da sıfırdan bir **function** oluşturmak bir problem değildir. Bunu optimize etmeniz gerekmez. Ancak bu function’ı Effect’inizin bir **dependency**’si olarak kullanırsanız, Effect’inizin **her commit’ten sonra yeniden çalışmasına** neden olur.
16611611
16621612
Render esnasında oluşturulan bir fonksiyonu bağımlılık olarak kullanmaktan kaçının. Bunun yerine Effect içinde bildirin:
16631613
@@ -1827,11 +1777,7 @@ Bu, Effect mantığınızın doğru uygunlanıdığını doğrulayan bir stres t
18271777
```js {3}
18281778
useEffect(() => {
18291779
// ...
1830-
<<<<<<< HEAD
1831-
}); // 🚩 Bağımlılık dizisi yok: her yeniden render'dan sonra yeniden çalışır!
1832-
=======
1833-
}); // 🚩 No dependency array: re-runs after every commit!
1834-
>>>>>>> 2da4f7fbd90ddc09835c9f85d61fd5644a271abc
1780+
}); // 🚩 Dependency array yok: her commit’ten sonra yeniden çalışır.
18351781
```
18361782
18371783
Bağımlılık dizisini belirttiyseniz ancak Effect'iniz hala döngüde yeniden çalışyorsa, bunun nedeni bağımlılıklarınızdan birinin her yeniden render'da farklı olmasıdır.

0 commit comments

Comments
 (0)