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/reference/rsc/use-server.md
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ canary: true
6
6
7
7
<Canary>
8
8
9
-
`'use server'` hanya diperlukan jika Anda [menggunakan Komponen *React Server*](/learn/start-a-new-react-project#bleeding-edge-react-frameworks) atau sedang membangun library yang kompatibel dengan fitur tersebut.
9
+
`'use server'` hanya diperlukan jika Anda [menggunakan Komponen Server React](/learn/start-a-new-react-project#bleeding-edge-react-frameworks) atau sedang membangun library yang kompatibel dengan fitur tersebut.
10
10
11
11
</Canary>
12
12
@@ -45,7 +45,7 @@ Daripada menandai fungsi satu per satu dengan `'use server'`, Anda bisa menambah
45
45
* Aksi Server sebaiknya dipanggil dalam sebuah [Transisi](/reference/react/useTransition). Aksi Server yang diteruskan ke [`<form action>`](/reference/react-dom/components/form#props) atau [`formAction`](/reference/react-dom/components/input#props) akan secara otomatis dipanggil dalam sebuah transisi.
46
46
* Aksi Server dirancang untuk melakukan mutasi yang memperbarui data di sisi server; Sehingga Aksi Server tidak disarankan untuk pengambilan data. Oleh karena itu, *framework* yang mengimplementasikan Aksi Server umumnya memproses satu aksi dalam satu waktu dan tidak menyediakan mekanisme untuk melakukan *caching* terhadap nilai yang dikembalikan.
47
47
48
-
### Pertimbangan Keamanan {/*security*/}
48
+
### Pertimbangan keamanan {/*security*/}
49
49
50
50
Argumen untuk Aksi Server sepenuhnya dikendalikan oleh klien. Demi keamanan, selalu perlakukan argumen tersebut sebagai masukan yang tidak tepercaya, dan pastikan untuk memvalidasi serta menyaring argumen sesuai kebutuhan.
*[Objek](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) yang merupakan *instance* dari kelas apa pun (selain bawaan seperti yang telah disebutkan) atau objek dengan [*null prototype*](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object#null-prototype_objects)
94
-
* Simbol yang tidak didaftarkan secara global, misalnya *`Symbol('my new symbol')`*
94
+
* Simbol yang tidak didaftarkan secara global, misalnya `Symbol('my new symbol')`
95
95
96
96
Nilai kembali yang dapat diserialisasi mengikuti aturan yang sama dengan [properti yang bisa diserialisasi](/reference/rsc/use-client#passing-props-from-server-to-client-components) untuk Komponen Klien yang menjadi pembatas.
97
97
98
98
## Penggunaan {/*usage*/}
99
99
100
100
### Aksi Server dalam formulir {/*server-actions-in-forms*/}
101
101
102
-
Aksi Server biasanya digunakan untuk memanggil fungsi di server yang mengubah data. Di peramban, pengguna umumnya mengirimkan perubahan data lewat [elemen formulir HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form). Dengan komponen *React Server*, React kini mendukung Aksi Server secara langsung di dalam formulir.
102
+
Aksi Server biasanya digunakan untuk memanggil fungsi di server yang mengubah data. Di peramban, pengguna umumnya mengirimkan perubahan data lewat [elemen formulir HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form). Dengan komponen server React, React kini mendukung Aksi Server secara langsung di dalam formulir.
103
103
104
104
Contoh di bawah ini menunjukkan formulir yang meminta nama pengguna.
105
105
@@ -122,17 +122,17 @@ export default function App() {
122
122
}
123
123
```
124
124
125
-
Dalam contoh ini, *`requestUsername`* adalah sebuah Aksi Server yang diteruskan ke sebuah formulir `<form>.`
126
-
Ketika pengguna mengirim formulir ini, akan ada permintaan jaringan ke fungsi server *`requestUsername`*.
125
+
Dalam contoh ini, `requestUsername` adalah sebuah Aksi Server yang diteruskan ke sebuah formulir `<form>.`
126
+
Ketika pengguna mengirim formulir ini, akan ada permintaan jaringan ke fungsi server `requestUsername`.
127
127
Saat memanggil Aksi Server lewat formulir, React akan mengirimkan <CodeStepstep={1}>[*FormData*](https://developer.mozilla.org/en-US/docs/Web/API/FormData)</CodeStep> dari formulir sebagai argumen pertama ke Aksi Server tersebut.
128
128
129
-
Dengan meneruskan Aksi Server ke formulir *`action`*, React bisa meningkatkan fungsionalitas formulir secara [progresif](https://developer.mozilla.org/en-US/docs/Glossary/Progressive_Enhancement). Artinya, formulir tetap bisa dikirimkan meskipun bundel *JavaScript* belum dimuat sepenuhnya.
129
+
Dengan meneruskan Aksi Server ke `action` formulir, React bisa meningkatkan fungsionalitas formulir secara [progresif](https://developer.mozilla.org/en-US/docs/Glossary/Progressive_Enhancement). Artinya, formulir tetap bisa dikirimkan meskipun bundel *JavaScript* belum dimuat sepenuhnya.
130
130
131
131
#### Menangani nilai kembali dari formulir {/*handling-return-values*/}
132
132
133
-
Dalam formulir diatas, ada kemungkinan nama pengguna yang diminta tidak tersedia. *`requestUsername`* harus memberi tahu apakah permintaan tersebut berhasil atau gagal.
133
+
Dalam formulir diatas, ada kemungkinan nama pengguna yang diminta tidak tersedia. `requestUsername` harus memberi tahu apakah permintaan tersebut berhasil atau gagal.
134
134
135
-
Untuk memperbarui antarmuka pengguna berdasarkan hasil dari Aksi Server sambil tetap mendukung peningkatan progresif gunakan [*`useActionState`*](/reference/react/useActionState).
135
+
Untuk memperbarui antarmuka pengguna berdasarkan hasil dari Aksi Server sambil tetap mendukung peningkatan progresif gunakan [`useActionState`](/reference/react/useActionState).
136
136
137
137
```js
138
138
// requestUsername.js
@@ -164,13 +164,13 @@ function UsernameForm() {
164
164
<input type="text" name="username"/>
165
165
<button type="submit">Meminta</button>
166
166
</form>
167
-
<p>Respon dari pengiriman terakhir:{state}</p>
167
+
<p>Respon dari pengiriman terakhir:{state}</p>
168
168
</>
169
169
);
170
170
}
171
171
```
172
172
173
-
Perlu diingat bahwa seperti Hook lainnya, *`useActionState`* hanya bisa dipanggil di <CodeStepstep={1}>[kode klien](/reference/rsc/use-client)</CodeStep>.
173
+
Perlu diingat bahwa seperti Hook lainnya, `useActionState` hanya bisa dipanggil di <CodeStepstep={1}>[kode klien](/reference/rsc/use-client)</CodeStep>.
174
174
175
175
### Memanggil sebuah Aksi Server dari luar formulir `<form>` {/*calling-a-server-action-outside-of-form*/}
0 commit comments