Skip to content

Commit 1539aab

Browse files
Merge pull request #638 from reactjs/sync-c0c955ed
Sync with react.dev @ c0c955e
2 parents 5e4d647 + c512f67 commit 1539aab

File tree

5 files changed

+19
-24
lines changed

5 files changed

+19
-24
lines changed

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
"@radix-ui/react-context-menu": "^2.1.5",
3131
"body-scroll-lock": "^3.1.3",
3232
"classnames": "^2.2.6",
33-
"date-fns": "^2.16.1",
3433
"debounce": "^1.2.1",
3534
"github-slugger": "^1.3.0",
3635
"next": "15.1.0",

src/content/reference/rsc/directives.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Directives are for use in [React Server Components](/reference/rsc/server-compon
1010

1111
<Intro>
1212

13-
Direktifler [React Sunucu Bileşenleri ile uyumlu paketleyiciler](/learn/start-a-new-react-project#bleeding-edge-react-frameworks) için talimatlar sağlar.
13+
Yönergeler, [React Server Components ile uyumlu paketleyicilere](/learn/start-a-new-react-project#full-stack-frameworks) talimatlar sağlar.
1414

1515
</Intro>
1616

src/content/reference/rsc/server-components.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Sunucu Bileşenleri
44

55
<RSC>
66

7-
Sunucu Bileşenleri aşağıdakilerde kullanım içindir [React Sunucu Bileşenleri](/learn/start-a-new-react-project#bleeding-edge-react-frameworks).
7+
Sunucu Bileşenleri aşağıdakilerde kullanım içindir [React Server Components](/learn/start-a-new-react-project#full-stack-frameworks).
88

99
</RSC>
1010

@@ -22,7 +22,7 @@ Bu ayrı ortam, React Sunucu Bileşenlerinde "sunucu" olarak adlandırılır. Su
2222

2323
#### Sunucu Bileşenleri için nasıl destek oluşturulur? {/*how-do-i-build-support-for-server-components*/}
2424

25-
React 19'daki React Sunucu Bileşenleri kararlı ve alt sürümler arasında kırılmayacak olsa da, bir React Sunucu Bileşenleri paketleyicisini veya framework'ünü uygulamak için kullanılan temel API'ler semver'ı takip etmez ve React 19.x'teki alt sürümler arasında kırılabilir.
25+
React 19'daki React Sunucu Bileşenleri kararlı ve küçük sürümler arasında bozulmayacak olsa da, React Sunucu Bileşenleri paketleyicisi veya çatısı (framework) oluşturmak için kullanılan temel API'ler semver (sürüm numarası yönetimi) kurallarına uymamakta ve React 19.x'in küçük sürümleri arasında bozulabilir.
2626

2727
React Sunucu Bileşenleri'ni bir paketleyici veya framework olarak desteklemek için, belirli bir React sürümüne sabitlemenizi veya Canary sürümünü kullanmanızı öneririz. Gelecekte, React Sunucu Bileşenleri'ni uygulamak için kullanılan API'leri stabilize etmek amacıyla paketleyiciler ve framework'lerle çalışmaya devam edeceğiz.
2828

@@ -45,7 +45,7 @@ function Page({page}) {
4545
setContent(data.content);
4646
});
4747
}, [page]);
48-
48+
4949
return <div>{sanitizeHtml(marked(content))}</div>;
5050
}
5151
```
@@ -69,7 +69,7 @@ import sanitizeHtml from 'sanitize-html'; // Paket içinde dahil edilmemiş
6969
async function Page({page}) {
7070
// NOT: Render sırasında, uygulama build edilirken yüklenir.
7171
const content = await file.readFile(`${page}.md`);
72-
72+
7373
return <div>{sanitizeHtml(marked(content))}</div>;
7474
}
7575
```
@@ -113,7 +113,7 @@ function Note({id}) {
113113
setNote(data.note);
114114
});
115115
}, [id]);
116-
116+
117117
return (
118118
<div>
119119
<Author id={note.authorId} />
@@ -253,7 +253,7 @@ Bu, önce `Notes`'u bir Sunucu Bileşeni olarak render edip, ardından paketleyi
253253
<p>bu ikinci nottur</p>
254254
</Expandable>
255255
<!--...-->
256-
</div>
256+
</div>
257257
</body>
258258
```
259259

@@ -270,8 +270,8 @@ import db from './database';
270270
async function Page({id}) {
271271
// Sunucu Bileşenini askıya alır.
272272
const note = await db.notes.get(id);
273-
274-
// NOT: beklenmemiş, burada başlayacak ve istemcide bekleyecek.
273+
274+
// NOT: await edilmedi, burada başlayacak ve client tarafında await edilecek.
275275
const commentsPromise = db.comments.get(note.id);
276276
return (
277277
<div>

src/content/reference/rsc/use-client.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ titleForTitleTag: "'use client' directive"
99

1010
</RSC>
1111

12-
1312
<Intro>
1413

1514
`'use client'` istemcide hangi kodun çalışacağını işaretlemenizi sağlar.
@@ -41,7 +40,7 @@ export default function RichTextEditor({ timestamp, text }) {
4140
}
4241
```
4342

44-
Bir Sunucu Bileşeninden `'use client'` ile işaretlenmiş bir dosya içe aktarıldığında, [uyumlu paketleyiciler](/learn/start-a-new-react-project#bleeding-edge-react-frameworks) modül içe aktarımını sunucu tarafından çalıştırılan ve istemci tarafından çalıştırılan kod arasında bir sınır olarak değerlendirecektir.
43+
Bir Sunucu Bileşeninden `'use client'` ile işaretlenmiş bir dosya içe aktarıldığında, [uyumlu paketleyiciler](/learn/start-a-new-react-project#full-stack-frameworks) modül içe aktarımını sunucu tarafından çalıştırılan ve istemci tarafından çalıştırılan kod arasında bir sınır olarak değerlendirecektir.
4544

4645
`RichTextEditor` bağımlılıkları olarak, `formatDate` ve `Button` da modüllerinin bir `'use client'` yönergesi içerip içermediğine bakılmaksızın istemcide değerlendirilecektir. Tek bir modülün sunucu kodundan içe aktarıldığında sunucuda, istemci kodundan içe aktarıldığında ise istemcide değerlendirilebileceğini unutmayın.
4746

@@ -183,6 +182,7 @@ function MyComponent() {
183182
```
184183

185184
2. Bir “bileşen”, tanımının bir **bileşen kullanımına** da atıfta bulunabilir.
185+
186186
```js
187187
import MyComponent from './MyComponent';
188188

@@ -199,10 +199,9 @@ Sunucu veya İstemci Bileşenleri hakkında konuştuğumuzda, bileşen kullanım
199199
* Bileşen `'use client'` yönergesine sahip bir modülde tanımlanmışsa veya bileşen bir İstemci Bileşeni içinde içe aktarılmış ve çağrılmışsa, bileşen kullanımı bir İstemci Bileşenidir.
200200
* Aksi takdirde, bileşen kullanımı bir Sunucu Bileşenidir.
201201

202-
203202
<Diagram name="use_client_render_tree" height={150} width={450} alt="Her bir node'un bir bileşeni ve alt elemanın da alt bileşenleri temsil ettiği bir ağaç grafiği. Üst düzey node 'App' olarak etiketlenmiştir. 'InspirationGenerator' ve 'FancyText' adlı iki alt bileşene sahiptir. 'InspirationGenerator' iki alt bileşene sahiptir, 'FancyText' ve 'Copyright'. Hem 'InspirationGenerator' hem de alt bileşeni 'FancyText' istemci tarafından oluşturulmak üzere işaretlenmiştir.">Bir render ağacı bileşen kullanımlarını gösterir.</Diagram>
204203

205-
`FancyText` sorusuna geri dönersek, bileşen tanımının bir `'use client'` yönergesine sahip _olmadığını_ ve iki kullanımı olduğunu görüyoruz.
204+
`FancyText` sorusuna geri dönersek, bileşen tanımının bir `'use client'` yönergesine sahip *olmadığını* ve iki kullanımı olduğunu görüyoruz.
206205

207206
`FancyText`'in `App`'in bir alt öğesi olarak kullanılması, bu kullanımı bir Sunucu Bileşeni olarak işaretler. `FancyText` içe aktarıldığında ve `InspirationGenerator` altında çağrıldığında, `InspirationGenerator` bir `'use client'` yönergesi içerdiğinden, `FancyText` kullanımı bir İstemci Bileşenidir.
208207

@@ -216,7 +215,7 @@ Sunucu veya İstemci Bileşenleri hakkında konuştuğumuzda, bileşen kullanım
216215

217216
`Copyright`, `InspirationGenerator` İstemci Bileşeninin bir çocuğu olarak işlendiğinden, bunun bir Sunucu Bileşeni olması sizi şaşırtabilir.
218217

219-
`'use client'`'ın sunucu ve istemci kodu arasındaki sınırı render ağacında değil _modül bağımlılık ağacında_ tanımladığını hatırlayın.
218+
`'use client'`'ın sunucu ve istemci kodu arasındaki sınırı render ağacında değil *modül bağımlılık ağacında* tanımladığını hatırlayın.
220219

221220
<Diagram name="use_client_module_dependency" height={200} width={500} alt="En üst node 'App.js' modülünü temsil eden bir ağaç grafiği. 'App.js''nin üç çocuğu vardır: 'Copyright.js', 'FancyText.js', ve 'InspirationGenerator.js'. 'InspirationGenerator.js' dosyasının iki çocuğu vardır: 'FancyText.js' ve 'inspirations.js'. 'InspirationGenerator.js' altındaki ve dahilindeki node'lar, 'InspirationGenerator.js' içindeki 'use client' yönergesi nedeniyle bu alt grafiğin istemci tarafından işlendiğini belirtmek için sarı bir arka plan rengine sahiptir.">
222221
`'use client'` modül bağımlılık ağacında sunucu ve istemci kodu arasındaki sınırı tanımlar.
@@ -237,10 +236,12 @@ Buradan çıkarılacak sonuç, bileşenler arasındaki üst eleman-alt eleman re
237236
Basit olması için Sunucu Bileşenlerinden bahsediyoruz, ancak aynı ilkeler uygulamanızdaki sunucuda çalışan tüm kodlar için geçerlidir.
238237

239238
#### Sunucu Bileşenlerinin Avantajları {/*advantages*/}
239+
240240
* Sunucu Bileşenleri, istemci tarafından gönderilen ve çalıştırılan kod miktarını azaltabilir. Yalnızca İstemci modülleri paketlenir ve istemci tarafından değerlendirilir.
241241
* Sunucu Bileşenleri sunucu üzerinde çalışmaktan yararlanır. Yerel dosya sistemine erişebilirler ve veri getirme ve ağ istekleri için düşük gecikme yaşayabilirler.
242242

243243
#### Sunucu Bileşenlerinin Sınırlamaları {/*limitations*/}
244+
244245
* Olay yöneticilerinin bir istemci tarafından kaydedilmesi ve tetiklenmesi gerektiğinden Sunucu Bileşenleri etkileşimi destekleyemez.
245246
* Örneğin, `onClick` gibi olay yöneticileri yalnızca İstemci Bileşenlerinde tanımlanabilir.
246247
* Sunucu Bileşenleri çoğu Hook'ları kullanamaz.
@@ -253,6 +254,7 @@ Tüm React uygulamalarında olduğu gibi, üst bileşenler alt bileşenlere veri
253254
Bir Sunucu Bileşeninden İstemci Bileşenine aktarılan prop değerleri serileştirilebilir olmalıdır.
254255

255256
Serileştirilebilir prop'lar şunları içerir:
257+
256258
* Primitives
257259
* [string](https://developer.mozilla.org/en-US/docs/Glossary/String)
258260
* [number](https://developer.mozilla.org/en-US/docs/Glossary/Number)
@@ -274,12 +276,12 @@ Serileştirilebilir prop'lar şunları içerir:
274276
* [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)
275277

276278
Özellikle, bunlar desteklenmemektedir:
279+
277280
* İstemci işaretli modüllerden dışa aktarılmayan veya [`'use server'`](/reference/rsc/use-server) ile işaretlenmeyen [Functions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function)
278281
* [Classes](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Classes_in_JavaScript)
279282
* Herhangi bir sınıfın örneği olan nesneler (belirtilen yerleşikler dışında) veya [null prototype](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object#null-prototype_objects) nesneler
280283
* Global olarak kaydedilmemiş semboller, örn. `Symbol('my new symbol')`
281284

282-
283285
## Kullanım {/*usage*/}
284286

285287
### Etkileşim ve state ile inşa etme {/*building-with-interactivity-and-state*/}
@@ -333,7 +335,7 @@ export default function FancyText({title, text}) {
333335
}
334336
```
335337

336-
Bu durumda `'use client'` yönergesini eklemiyoruz, bu da `FancyText`'in _output_'unun (kaynak kodu yerine) bir Sunucu Bileşeninden başvurulduğunda tarayıcıya gönderilmesine neden oluyor. Daha önceki Inspirations uygulaması örneğinde gösterildiği gibi `FancyText` içe aktarıldığı ve kullanıldığı yere bağlı olarak hem Sunucu hem de İstemci Bileşeni olarak kullanılır.
338+
Bu durumda `'use client'` yönergesini eklemiyoruz, bu da `FancyText`'in *output*'unun (kaynak kodu yerine) bir Sunucu Bileşeninden başvurulduğunda tarayıcıya gönderilmesine neden oluyor. Daha önceki Inspirations uygulaması örneğinde gösterildiği gibi `FancyText` içe aktarıldığı ve kullanıldığı yere bağlı olarak hem Sunucu hem de İstemci Bileşeni olarak kullanılır.
337339

338340
Ancak `FancyText`in HTML çıktısı kaynak koduna (bağımlılıklar dahil) göre büyükse, onu her zaman bir İstemci Bileşeni olmaya zorlamak daha verimli olabilir. Uzun bir SVG path'i döndüren bileşenler, bir bileşeni İstemci Bileşeni olmaya zorlamanın daha verimli olabileceği bir durumdur.
339341

@@ -367,6 +369,7 @@ export default function Circle() {
367369
Genellikle bir React uygulamasında yaygın kullanıcı arayüzü modellerini veya mantığını işlemek için üçüncü taraf kütüphanelerden yararlanırsınız.
368370

369371
Bu kütüphaneler bileşen Hook'larına veya istemci API'lerine dayanabilir. Aşağıdaki React API'lerinden herhangi birini kullanan üçüncü taraf bileşenleri istemci üzerinde çalışmalıdır:
372+
370373
* [createContext](/reference/react/createContext)
371374
* [`react`](/reference/react/hooks) ve [`react-dom`](/reference/react-dom/hooks) Hooks, [`use`](/reference/react/use) ve [`useId`](/reference/react/useId) hariç
372375
* [forwardRef](/reference/react/forwardRef)
@@ -375,5 +378,3 @@ Bu kütüphaneler bileşen Hook'larına veya istemci API'lerine dayanabilir. Aş
375378
* İstemci API'leri kullanıyorlarsa, örneğin DOM ekleme veya yerel platform görünümleri
376379

377380
Bu kütüphaneler React Server Components ile uyumlu olacak şekilde güncelleştirildiyse, kendi '`'use client' işaretçilerini zaten içerecek ve bunları doğrudan Sunucu Bileşenlerinizden kullanmanıza olanak tanıyacaktır. Bir kütüphane güncellenmemişse veya bir bileşenin yalnızca istemcide belirtilebilen olay yöneticileri gibi desteklere ihtiyacı varsa, üçüncü taraf İstemci Bileşeni ile kullanmak istediğiniz Sunucu Bileşeniniz arasına kendi İstemci Bileşeni dosyanızı eklemeniz gerekebilir.
378-
379-
[TODO]: <> (Troubleshooting - need use-cases)

yarn.lock

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2799,11 +2799,6 @@ data-view-byte-offset@^1.0.0:
27992799
es-errors "^1.3.0"
28002800
is-data-view "^1.0.1"
28012801

2802-
date-fns@^2.16.1:
2803-
version "2.28.0"
2804-
resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz"
2805-
integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==
2806-
28072802
debounce@^1.2.1:
28082803
version "1.2.1"
28092804
resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz"

0 commit comments

Comments
 (0)