diff --git a/src/content/reference/react/useDeferredValue.md b/src/content/reference/react/useDeferredValue.md index 8b6a2f629..f8bf5af9e 100644 --- a/src/content/reference/react/useDeferredValue.md +++ b/src/content/reference/react/useDeferredValue.md @@ -36,13 +36,13 @@ function SearchPage() { #### Parametreler {/*parameters*/} -* `value`: The value you want to defer. It can have any type. -* **optional** `initialValue`: A value to use during the initial render of a component. If this option is omitted, `useDeferredValue` will not defer during the initial render, because there's no previous version of `value` that it can render instead. +* `value`: Ertelemek istediğiniz değer. Herhangi bir türde olabilir. +* **isteğe bağlı** `initialValue`: Bir bileşenin ilk render'ı sırasında kullanılacak bir değer. Bu seçenek atlanırsa, `useDeferredValue` ilk render sırasında erteleme yapmaz, çünkü yerine render edebileceği bir önceki `value` versiyonu yoktur. #### Dönüş değeri {/*returns*/} -- `currentValue`: During the initial render, the returned deferred value will be the `initialValue`, or the same as the value you provided. During updates, React will first attempt a re-render with the old value (so it will return the old value), and then try another re-render in the background with the new value (so it will return the updated value). +- `currentValue`: İlk render sırasında, döndürülen ertelenmiş değer `initialValue` olacaktır veya sağladığınız değerle aynı olur. Güncellemeler sırasında, React önce eski değerle yeniden render yapmayı dener (bu yüzden eski değeri döndürecektir), ardından arka planda yeni değerle bir başka yeniden render yapmayı dener (bu yüzden güncellenmiş değeri döndürecektir). #### Dikkat edilmesi gerekenler {/*caveats*/} @@ -146,9 +146,9 @@ export default function SearchResults({ query }) { ``` ```js src/data.js hidden -// Note: the way you would do data fetching depends on -// the framework that you use together with Suspense. -// Normally, the caching logic would be inside a framework. +// Not: Veri çekme işlemi, birlikte kullandığınız framework'e bağlıdır +// ve Suspense ile birlikte çalışır. +// Normalde, önbellekleme mantığı bir framework içinde yer alır. let cache = new Map(); @@ -163,12 +163,12 @@ async function getData(url) { if (url.startsWith('/search?q=')) { return await getSearchResults(url.slice('/search?q='.length)); } else { - throw Error('Not implemented'); + throw Error('Uygulanmadı'); } } async function getSearchResults(query) { - // Add a fake delay to make waiting noticeable. + // Beklemeyi fark edilebilir hale getirmek için sahte bir gecikme ekleyin. await new Promise(resolve => { setTimeout(resolve, 1000); }); @@ -316,9 +316,9 @@ export default function SearchResults({ query }) { ``` ```js src/data.js hidden -// Note: the way you would do data fetching depends on -// the framework that you use together with Suspense. -// Normally, the caching logic would be inside a framework. +// Not: Veri çekme işlemi, birlikte kullandığınız framework'e bağlıdır +// ve Suspense ile birlikte çalışır. +// Normalde, önbellekleme mantığı bir framework içinde yer alır. let cache = new Map(); @@ -338,7 +338,7 @@ async function getData(url) { } async function getSearchResults(query) { - // Add a fake delay to make waiting noticeable. +// Beklemeyi fark edilebilir hale getirmek için sahte bir gecikme ekleyin. await new Promise(resolve => { setTimeout(resolve, 1000); }); @@ -500,9 +500,9 @@ export default function SearchResults({ query }) { ``` ```js src/data.js hidden -// Note: the way you would do data fetching depends on -// the framework that you use together with Suspense. -// Normally, the caching logic would be inside a framework. +// Not: Veri çekme işlemi, birlikte kullandığınız framework'e bağlıdır +// ve Suspense ile birlikte çalışır. +// Normalde, önbellekleme mantığı bir framework içinde yer alır. let cache = new Map(); @@ -522,7 +522,7 @@ async function getData(url) { } async function getSearchResults(query) { - // Add a fake delay to make waiting noticeable. + // Beklemeyi fark edilebilir hale getirmek için sahte bir gecikme ekleyin. await new Promise(resolve => { setTimeout(resolve, 1000); }); @@ -673,7 +673,7 @@ export default function App() { import { memo } from 'react'; const SlowList = memo(function SlowList({ text }) { - // Log once. The actual slowdown is inside SlowItem. + // Bir kez logla. Gerçek yavaşlama SlowItem içinde. console.log('[ARTIFICIALLY SLOW] Rendering 250 '); let items = []; @@ -690,7 +690,7 @@ const SlowList = memo(function SlowList({ text }) { function SlowItem({ text }) { let startTime = performance.now(); while (performance.now() - startTime < 1) { - // Do nothing for 1 ms per item to emulate extremely slow code + // Her öğe için 1 ms hiçbir şey yapma, aşırı yavaş kodu taklit etmek için. } return ( diff --git a/src/content/reference/react/useImperativeHandle.md b/src/content/reference/react/useImperativeHandle.md index e5f68be44..d1fce62cd 100644 --- a/src/content/reference/react/useImperativeHandle.md +++ b/src/content/reference/react/useImperativeHandle.md @@ -38,7 +38,7 @@ function MyInput({ ref }) { #### Parametreler {/*parameters*/} -* `ref`: The `ref` you received as a prop to the `MyInput` component. +* `ref`: `MyInput` bileşenine prop olarak aldığınız `ref`. * `createHandle`: Herhangi bir argüman almayan ve açığa çıkarmak istediğiniz ref tanımlayıcısını döndüren bir fonksiyondur. Bu ref tanımlayıcısı herhangi bir tipte olabilir. Genellikle, açığa çıkarmak istediğiniz metotların bulunduğu bir nesne döndürürsünüz. @@ -46,7 +46,7 @@ function MyInput({ ref }) { -Starting with React 19, [`ref` is available a prop.](/blog/2024/12/05/react-19#ref-as-a-prop) In React 18 and earlier, it was necessary to get the `ref` from [`forwardRef`.](/reference/react/forwardRef) +React 19 ile birlikte, [`ref` bir prop olarak mevcuttur.](/blog/2024/12/05/react-19#ref-as-a-prop) React 18 ve öncesinde, `ref`'i [`forwardRef`'den](/reference/react/forwardRef) almak gerekiyordu. @@ -60,7 +60,7 @@ Starting with React 19, [`ref` is available a prop.](/blog/2024/12/05/react-19#r ### Özel bir ref tanımlayıcısını üst elemana açığa çıkarma {/*exposing-a-custom-ref-handle-to-the-parent-component*/} -To expose a DOM node to the parent element, pass in the `ref` prop to the node. +Bir DOM düğümünü ebeveyn elemana açığa çıkarmak için, `ref` prop'unu düğüme iletin. ```js {2} function MyInput({ ref }) { @@ -68,7 +68,7 @@ function MyInput({ ref }) { }; ``` -With the code above, [a ref to `MyInput` will receive the `` DOM node.](/learn/manipulating-the-dom-with-refs) However, you can expose a custom value instead. To customize the exposed handle, call `useImperativeHandle` at the top level of your component: +Yukarıdaki kodla, [`MyInput`'e ait bir ref, `` DOM düğümünü alacaktır.](/learn/manipulating-the-dom-with-refs) Ancak bunun yerine özel bir değer de açığa çıkarabilirsiniz. Açığa çıkan handle'ı özelleştirmek için, bileşeninizin üst seviyesinde `useImperativeHandle` çağırın: ```js {4-8} import { useImperativeHandle } from 'react'; @@ -84,7 +84,7 @@ function MyInput({ ref }) { }; ``` -Note that in the code above, the `ref` is no longer passed to the ``. +Yukarıdaki kodda, `ref`'in artık ``'a iletilmediğine dikkat edin. Örneğin, `` DOM düğümünün tamamını açığa çıkarmak istemiyorsunuz, ancak `focus` ve `scrollIntoView` gibi iki metodu açığa çıkarmak istiyorsunuz. Bunun için gerçek tarayıcı DOM'unu ayrı bir ref içinde tutun. Ardından, yalnızca üst elemanın çağırmasını istediğiniz metotlara sahip bir tanımlayıcıyı açığa çıkarmak için `useImperativeHandle`'ı kullanın: diff --git a/src/content/reference/react/useRef.md b/src/content/reference/react/useRef.md index f44afa1b9..2e423337a 100644 --- a/src/content/reference/react/useRef.md +++ b/src/content/reference/react/useRef.md @@ -449,7 +449,7 @@ button { display: block; margin-bottom: 20px; } #### Kendi bileşeninize bir ref'i açığa çıkarma {/*exposing-a-ref-to-your-own-component*/} -Sometimes, you may want to let the parent component manipulate the DOM inside of your component. For example, maybe you're writing a `MyInput` component, but you want the parent to be able to focus the input (which the parent has no access to). You can create a `ref` in the parent and pass the `ref` as prop to the child component. Read a [detailed walkthrough](/learn/manipulating-the-dom-with-refs#accessing-another-components-dom-nodes) here. +Bazen, ebeveyn bileşenin, bileşeninizin içindeki DOM'u manipüle etmesine izin vermek isteyebilirsiniz. Örneğin, belki bir `MyInput` bileşeni yazıyorsunuz, ancak ebeveynin input'a odaklanabilmesini (ebeveynin buna erişimi yoktur) istiyorsunuz. Ebeveyn içinde bir `ref` oluşturabilir ve `ref`'i prop olarak çocuk bileşene iletebilirsiniz. [Detaylı bir rehber için buraya bakın.](/learn/manipulating-the-dom-with-refs#accessing-another-components-dom-nodes) @@ -556,7 +556,7 @@ Konsolda bir hata alabilirsiniz: -TypeError: Cannot read properties of null +TypeError: Null'un özellikleri okunamıyor @@ -575,7 +575,7 @@ export default function MyInput({ value, onChange }) { } ``` -And then add `ref` to the list of props your component accepts and pass `ref` as a prop to the relevent child [built-in component](/reference/react-dom/components/common) like this: +Ve ardından `ref`'i, bileşeninizin kabul ettiği props listesine ekleyin ve `ref`'i ilgili [yerleşik bileşene](/reference/react-dom/components/common) prop olarak iletin, şöyle: ```js {1,6} function MyInput({ value, onChange, ref }) { diff --git a/src/content/reference/rsc/directives.md b/src/content/reference/rsc/directives.md index ed40db7bb..3b01b1c88 100644 --- a/src/content/reference/rsc/directives.md +++ b/src/content/reference/rsc/directives.md @@ -1,10 +1,10 @@ --- -title: Directives +title: Direktifler --- -Directives are for use in [React Server Components](/learn/start-a-new-react-project#bleeding-edge-react-frameworks). +Direktifler, [React Sunucu Bileşenleri](/learn/start-a-new-react-project#bleeding-edge-react-frameworks) içinde kullanılmak içindir. diff --git a/src/content/reference/rsc/use-client.md b/src/content/reference/rsc/use-client.md index f0f577041..35dbb4701 100644 --- a/src/content/reference/rsc/use-client.md +++ b/src/content/reference/rsc/use-client.md @@ -5,7 +5,7 @@ titleForTitleTag: "'use client' directive" -`'use client'` is for use with [React Server Components](/learn/start-a-new-react-project#bleeding-edge-react-frameworks). +`'use client'`, [React Sunucu Bileşenleri](/learn/start-a-new-react-project#bleeding-edge-react-frameworks) ile kullanmak içindir. diff --git a/src/content/reference/rsc/use-server.md b/src/content/reference/rsc/use-server.md index d239bdc8f..405118d93 100644 --- a/src/content/reference/rsc/use-server.md +++ b/src/content/reference/rsc/use-server.md @@ -1,11 +1,11 @@ --- title: "'use server'" -titleForTitleTag: "'use server' directive" +titleForTitleTag: "'use server' direktif" --- -`'use server'` is for use with [using React Server Components](/learn/start-a-new-react-project#bleeding-edge-react-frameworks). +`'use server'`, [React Sunucu Bileşenleri kullanımı için](/learn/start-a-new-react-project#bleeding-edge-react-frameworks) kullanılır. @@ -24,7 +24,7 @@ titleForTitleTag: "'use server' directive" ### `'use server'` {/*use-server*/} -Add `'use server'` at the top of an async function body to mark the function as callable by the client. We call these functions [_Server Functions_](/reference/rsc/server-functions). +Bir async fonksiyonunun başına `'use server'` ekleyerek fonksiyonu istemci tarafından çağrılabilir hale getirin. Bu fonksiyonlara [_Server Functions_](/reference/rsc/server-functions) denir. ```js {2} async function addToCart(data) { @@ -33,28 +33,28 @@ async function addToCart(data) { } ``` -When calling a Server Function on the client, it will make a network request to the server that includes a serialized copy of any arguments passed. If the Server Function returns a value, that value will be serialized and returned to the client. +Bir Sunucu Fonksiyon'u istemciden çağırdığınızda, geçilen tüm argümanların serileştirilmiş bir kopyasını içeren bir ağ isteği sunucuya yapılır. Eğer Sunucu Fonksiyon bir değer dönerse, bu değer serileştirilir ve istemciye geri gönderilir. -Instead of individually marking functions with `'use server'`, you can add the directive to the top of a file to mark all exports within that file as Server Functions that can be used anywhere, including imported in client code. +Fonksiyonları tek tek `'use server'` ile işaretlemek yerine, bir dosyanın başına yönergeyi ekleyebilirsiniz, böylece o dosyadaki tüm export'lar, istemci kodunda da kullanılabilen Sunucu Fonksiyon'lar olarak işaretlenir. -#### Caveats {/*caveats*/} -* `'use server'` must be at the very beginning of their function or module; above any other code including imports (comments above directives are OK). They must be written with single or double quotes, not backticks. -* `'use server'` can only be used in server-side files. The resulting Server Functions can be passed to Client Components through props. See supported [types for serialization](#serializable-parameters-and-return-values). -* To import a Server Functions from [client code](/reference/rsc/use-client), the directive must be used on a module level. -* Because the underlying network calls are always asynchronous, `'use server'` can only be used on async functions. -* Always treat arguments to Server Functions as untrusted input and authorize any mutations. See [security considerations](#security). -* Server Functions should be called in a [Transition](/reference/react/useTransition). Server Functions passed to [`
`](/reference/react-dom/components/form#props) or [`formAction`](/reference/react-dom/components/input#props) will automatically be called in a transition. -* Server Functions are designed for mutations that update server-side state; they are not recommended for data fetching. Accordingly, frameworks implementing Server Functions typically process one action at a time and do not have a way to cache the return value. +#### Uyarılar {/*caveats*/} +* `'use server'` fonksiyonlarının veya modüllerinin başında, diğer kodlardan (imports dahil) önce olmalıdır (yönergelerden önceki yorumlar kabul edilir). Tek tırnak veya çift tırnak ile yazılmalıdır, ters tırnak kullanılamaz. +* `'use server'` yalnızca sunucu tarafı dosyalarında kullanılabilir. Ortaya çıkan Sunucu Fonksiyon'lar, Sunucu Bileşen'lere prop'lar aracılığıyla iletilebilir. Desteklenen [serileştirme türlerine](#serializable-parameters-and-return-values) bakın. +* Bir Sunucu Fonksiyon'ı [istemci kodu](/reference/rsc/use-client) içinden içe aktarmak için, yönerge modül seviyesinde kullanılmalıdır. +* Altta yatan ağ çağrıları her zaman asenkron olduğu için, `'use server'` yalnızca async fonksiyonlarda kullanılabilir. +* Sunucu Fonksiyon'lara geçirilen argümanları her zaman güvenilmeyen girişler olarak ele alın ve herhangi bir değişiklik yapmadan önce yetkilendirme yapın. [Güvenlik önlemleri](#security) için bakın. +* Sunucu Fonksiyon'lar bir [Transition](/reference/react/useTransition) içinde çağrılmalıdır. [``](/reference/react-dom/components/form#props) veya [`formAction`](/reference/react-dom/components/input#props) ile geçirilen Sunucu Fonksiyon'lar otomatik olarak bir geçiş içinde çağrılacaktır. +* Sunucu Fonksiyon'lar, sunucu tarafı durumu güncelleyen değişiklikler için tasarlanmıştır; veri çekme işlemleri için önerilmezler. Bu nedenle, Sunucu Fonksiyon'ları uygulayan framework'ler genellikle her seferinde bir işlemi işler ve dönüş değerini önbelleğe almak için bir yöntem sunmazlar. ### Güvenlikle ilgili hususlar {/*security*/} -Arguments to Server Functions are fully client-controlled. For security, always treat them as untrusted input, and make sure to validate and escape arguments as appropriate. +Sunucu Fonksiyon'lara geçirilen argümanlar tamamen istemci tarafından kontrol edilir. Güvenlik için, her zaman bunları güvenilmeyen girişler olarak ele alın ve argümanları uygun şekilde doğrulayın ve kaçış işlemi uygulayın. -In any Server Function, make sure to validate that the logged-in user is allowed to perform that action. +Herhangi bir Sunucu Fonksiyonu içinde, giriş yapmış kullanıcının bu işlemi gerçekleştirmeye yetkili olduğundan emin olun. -To prevent sending sensitive data from a Server Function, there are experimental taint APIs to prevent unique values and objects from being passed to client code. +Bir Sunucu Fonksiyonun'dan hassas veri gönderimini önlemek için, istemci koduna benzersiz değerlerin ve nesnelerin iletilmesini engellemek amacıyla deneysel taint API'leri mevcuttur. Bkz. [experimental_taintUniqueValue](/reference/react/experimental_taintUniqueValue) ve [experimental_taintObjectReference](/reference/react/experimental_taintObjectReference). @@ -62,9 +62,9 @@ Bkz. [experimental_taintUniqueValue](/reference/react/experimental_taintUniqueVa ### Serileştirilebilir bağımsız değişkenler ve dönüş değerleri {/*serializable-parameters-and-return-values*/} -Since client code calls the Server Function over the network, any arguments passed will need to be serializable. +İstemci kodu, Sunucu Fonksiyon'u ağ üzerinden çağırdığı için, geçirilen tüm argümanların serileştirilebilir olması gerekir. -Here are supported types for Server Function arguments: +İşte Sunucu Fonksiyon argümanları için desteklenen türler: * Primitives * [string](https://developer.mozilla.org/en-US/docs/Glossary/String) @@ -83,17 +83,16 @@ Here are supported types for Server Function arguments: * [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) * [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData) instances * Plain [objects](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object): those created with [object initializers](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer), with serializable properties -* Functions that are Server Functions +* Sunucu Fonksiyon'u olan fonksiyonlar * [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) -Notably, these are not supported: -* React elements, or [JSX](/learn/writing-markup-with-jsx) -* Functions, including component functions or any other function that is not a Server Function -* [Classes](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Classes_in_JavaScript) -* Objects that are instances of any class (other than the built-ins mentioned) or objects with [a null prototype](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object#null-prototype_objects) -* Symbols not registered globally, ex. `Symbol('my new symbol')` -* Events from event handlers - +Özellikle, bunlar desteklenmez: +* React elemanları veya [JSX](/learn/writing-markup-with-jsx) +* Fonksiyonlar, bileşen fonksiyonları veya Sunucu Fonksiyon olmayan diğer tüm fonksiyonlar dahil +* [Sınıflar](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Classes_in_JavaScript) +* Herhangi bir sınıfın örnekleri olan nesneler (bahsedilen yerleşik sınıflar dışında) veya [null prototipi olan nesneler](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object#null-prototype_objects) +* Küresel olarak kaydedilmemiş semboller, örneğin `Symbol('my new symbol')` +* Olay yöneticilerinden gelen olaylar Desteklenen serileştirilebilir dönüş değerleri, bir sınır İstemci Bileşeni için [serileştirilebilir proplar](/reference/rsc/use-client#passing-props-from-server-to-client-components) ile aynıdır. @@ -101,11 +100,11 @@ Desteklenen serileştirilebilir dönüş değerleri, bir sınır İstemci Bileş ### Formlarda Sunucu Eylemleri {/*server-actions-in-forms*/} -### Server Functions in forms {/*server-functions-in-forms*/} +### Formlardaki Sunucu Fonksiyon'lar {/*server-functions-in-forms*/} -The most common use case of Server Functions will be calling functions that mutate data. On the browser, the [HTML form element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form) is the traditional approach for a user to submit a mutation. With React Server Components, React introduces first-class support for Server Functions as Actions in [forms](/reference/react-dom/components/form). +Sunucu Fonksiyon'ların en yaygın kullanım senaryosu, veri üzerinde değişiklik yapan fonksiyonları çağırmaktır. Tarayıcıda, [HTML form elemanı](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form), bir kullanıcının bir değişiklik göndermesi için geleneksel yaklaşımdır. React Sunucu Bileşenleri ile React, [formlarda](/reference/react-dom/components/form) Sunucu Fonksiyon'lar için birinci sınıf destek sunar. -Here is a form that allows a user to request a username. +İşte bir kullanıcının bir kullanıcı adı talep etmesine izin veren bir form. ```js [[1, 3, "formData"]] // App.js @@ -126,15 +125,15 @@ export default function App() { } ``` -In this example `requestUsername` is a Server Function passed to a ``. When a user submits this form, there is a network request to the server function `requestUsername`. When calling a Server Function in a form, React will supply the form's [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData) as the first argument to the Server Function. +Bu örnekte `requestUsername`, bir ``'a geçirilen bir Sunucu Fonksiyon'dır. Bir kullanıcı bu formu gönderdiğinde, `requestUsername` sunucu fonksiyonuna yapılan bir ağ isteği gerçekleşir. Bir Sunucu Fonksiyon'ı form içinde çağırırken, React, formun [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData)'sini birinci argüman olarak Sunucu Fonksiyon'a iletecektir. -By passing a Server Function to the form `action`, React can [progressively enhance](https://developer.mozilla.org/en-US/docs/Glossary/Progressive_Enhancement) the form. This means that forms can be submitted before the JavaScript bundle is loaded. +Bir Sunucu Fonksiyon'ı form `action`'ına geçirerek, React formu [kademeli olarak iyileştirebilir](https://developer.mozilla.org/en-US/docs/Glossary/Progressive_Enhancement). Bu, formların JavaScript paketi yüklenmeden önce gönderilebileceği anlamına gelir. #### Formlarda dönüş değerlerini işleme {/*handling-return-values*/} Kullanıcı adı istek formunda, bir kullanıcı adının mevcut olmaması ihtimali olabilir. `requestUsername` bize başarısız olup olmadığını söylemelidir. -To update the UI based on the result of a Server Function while supporting progressive enhancement, use [`useActionState`](/reference/react/useActionState). +Sunucu Fonksiyonu sonucuna dayalı olarak UI'yı güncellemek ve kademeli iyileştirmeyi desteklemek için, [`useActionState`](/reference/react/useActionState) kullanın. ```js // requestUsername.js @@ -172,14 +171,13 @@ function UsernameForm() { } ``` -Note that like most Hooks, `useActionState` can only be called in [client code](/reference/rsc/use-client). -Çoğu Hook gibi `useActionState`in de yalnızca [client code](/reference/rsc/use-client) içinde çağrılabileceğini unutmayın. +Not: Diğer çoğu Hook gibi `useActionState`in de yalnızca [client code](/reference/rsc/use-client) içinde çağrılabileceğini unutmayın. -### Calling a Server Function outside of `` {/*calling-a-server-function-outside-of-form*/} +### `` dışında bir Sunucu Fonksiyon'u çağırma {/*calling-a-server-function-outside-of-form*/} -Server Functions are exposed server endpoints and can be called anywhere in client code. +Sunucu Fonksiyon'lar, sunucu uç noktalarıdır ve istemci kodunda her yerde çağrılabilir. -When using a Server Function outside a [form](/reference/react-dom/components/form), call the Server Function in a [Transition](/reference/react/useTransition), which allows you to display a loading indicator, show [optimistic state updates](/reference/react/useOptimistic), and handle unexpected errors. Forms will automatically wrap Server Functions in transitions. +Bir Sunucu Fonksiyon'u bir [form](/reference/react-dom/components/form) dışında kullanırken, Sunucu Fonksiyon'u bir [Transition](/reference/react/useTransition) içinde çağırın, bu sayede yükleme göstergesi gösterebilir, [iyimser durum güncellemeleri](/reference/react/useOptimistic) yapabilir ve beklenmeyen hataları yönetebilirsiniz. Formlar, otomatik olarak Sunucu Fonksiyon'ları geçişler içinde sarar. ```js {9-12} import incrementLike from './actions'; @@ -216,4 +214,4 @@ export default async function incrementLike() { } ``` -To read a Server Function return value, you'll need to `await` the promise returned. +Bir Sunucu Fonksiyon dönüş değerini okumak için, döndürülen promise'i `await` etmeniz gerekecek.