Skip to content

Commit dcb7bad

Browse files
zakirkunMuh Zakir Ramadhanmhaidarhanifresir014
authored
docs: translate API Reference -> react-dom -> hydrate (#528)
Co-authored-by: Muh Zakir Ramadhan <mzramadhan@digiasia.asia> Co-authored-by: M Haidar Hanif <git@mhaidarhanif.com> Co-authored-by: Resi Respati <resir014@gmail.com>
1 parent 1e503ee commit dcb7bad

File tree

1 file changed

+40
-40
lines changed

1 file changed

+40
-40
lines changed

src/content/reference/react-dom/hydrate.md

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ title: hydrate
44

55
<Deprecated>
66

7-
This API will be removed in a future major version of React.
7+
API ini akan dihapus pada React versi mayor berikutnya.
88

9-
In React 18, `hydrate` was replaced by [`hydrateRoot`.](/reference/react-dom/client/hydrateRoot) Using `hydrate` in React 18 will warn that your app will behave as if it’s running React 17. Learn more [here.](/blog/2022/03/08/react-18-upgrade-guide#updates-to-client-rendering-apis)
9+
Di React 18, `hydrate` digantikan oleh [`hydrateRoot`.](/reference/react-dom/client/hydrateRoot) Menggunakan `hydrate` di React 18 akan memberi peringatan bahwa aplikasi Anda akan berperilaku seakan-akan sedang berjalan di React 17. Pelajari selengkapnya [di sini.](/blog/2022/03/08/react-18-upgrade-guide#updates-to-client-rendering-apis)
1010

1111
</Deprecated>
1212

1313
<Intro>
1414

15-
`hydrate` lets you display React components inside a browser DOM node whose HTML content was previously generated by [`react-dom/server`](/reference/react-dom/server) in React 17 and below.
15+
`hydrate` memungkinkan Anda menampilkan komponen React di dalam simpul DOM peramban yang konten HTML-nya sebelumnya telah dihasilkan oleh [`react-dom/server`](/reference/react-dom/server) di React versi 17 ke bawah.
1616

1717
```js
1818
hydrate(reactNode, domNode, callback?)
@@ -24,68 +24,68 @@ hydrate(reactNode, domNode, callback?)
2424
2525
---
2626
27-
## Reference {/*reference*/}
27+
## Referensi {/*reference*/}
2828
2929
### `hydrate(reactNode, domNode, callback?)` {/*hydrate*/}
3030
31-
Call `hydrate` in React 17 and below to “attach” React to existing HTML that was already rendered by React in a server environment.
31+
Memanggil `hydrate` di React 17 dan yang lebih rendah untuk "melekatkan" React ke HTML yang sudah ada sebelumnya yang dihasilkan oleh React di lingkungan *server*.
3232
3333
```js
3434
import { hydrate } from 'react-dom';
3535

3636
hydrate(reactNode, domNode);
3737
```
3838
39-
React will attach to the HTML that exists inside the `domNode`, and take over managing the DOM inside it. An app fully built with React will usually only have one `hydrate` call with its root component.
39+
React akan melekat pada HTML yang ada di dalam `domNode`, dan mengambil alih pengelolaan DOM di dalamnya. Sebuah aplikasi yang sepenuhnya dibangun dengan React biasanya hanya akan memiliki satu pemanggilan `hydrate` dengan komponen akarnya.
4040
41-
[See more examples below.](#usage)
41+
[Lihat lebih banyak contoh di bawah ini.](#usage)
4242
43-
#### Parameters {/*parameters*/}
43+
#### Parameter {/*parameters*/}
4444
45-
* `reactNode`: The "React node" used to render the existing HTML. This will usually be a piece of JSX like `<App />` which was rendered with a `ReactDOM Server` method such as `renderToString(<App />)` in React 17.
45+
* `reactNode`: "Simpul React" yang digunakan untuk me-*render* HTML yang sudah ada. Ini biasanya berupa potongan JSX seperti `<App />` yang di-*render* dengan metode (*method*) `ReactDOM Server` seperti `renderToString(<App />)` di React 17.
4646
47-
* `domNode`: A [DOM element](https://developer.mozilla.org/en-US/docs/Web/API/Element) that was rendered as the root element on the server.
47+
* `domNode`: Sebuah [elemen DOM](https://developer.mozilla.org/en-US/docs/Web/API/Element) yang di-*render* sebagai elemen akar di *server*.
4848
49-
* **optional**: `callback`: A function. If passed, React will call it after your component is hydrated.
49+
* **opsional**: `callback`: Sebuah fungsi. Jika diberikan, React akan memanggilnya setelah komponen Anda terhidrasi (*hydrated*).
5050
51-
#### Returns {/*returns*/}
51+
#### Kembalian {/*returns*/}
5252
53-
`hydrate` returns null.
53+
`hydrate` mengembalikan nilai kosong (*null*).
5454
55-
#### Caveats {/*caveats*/}
56-
* `hydrate` expects the rendered content to be identical with the server-rendered content. React can patch up differences in text content, but you should treat mismatches as bugs and fix them.
57-
* In development mode, React warns about mismatches during hydration. There are no guarantees that attribute differences will be patched up in case of mismatches. This is important for performance reasons because in most apps, mismatches are rare, and so validating all markup would be prohibitively expensive.
58-
* You'll likely have only one `hydrate` call in your app. If you use a framework, it might do this call for you.
59-
* If your app is client-rendered with no HTML rendered already, using `hydrate()` is not supported. Use [render()](/reference/react-dom/render) (for React 17 and below) or [createRoot()](/reference/react-dom/client/createRoot) (for React 18+) instead.
55+
#### Catatan {/*caveats*/}
56+
* `hydrate` mengharapkan konten yang di-*render* identik dengan konten yang di-*render* di *server*. React dapat memperbaiki perbedaan dalam konten teks, tetapi Anda seharusnya memperlakukan ketidakcocokan tersebut sebagai *bug* dan memperbaikinya sendiri.
57+
* Dalam mode pengembangan, React memberi peringatan tentang ketidakcocokan selama hidrasi (*hydration*). Tidak ada jaminan bahwa perbedaan atribut akan diperbaiki dalam kasus ketidakcocokan. Ini penting untuk alasan kinerja karena dalam sebagian besar aplikasi, ketidakcocokan jarang terjadi, sehingga memvalidasi semua markup akan menjadi sangat mahal.
58+
* Kemungkinan Anda hanya akan memiliki satu pemanggilan `hydrate` dalam aplikasi Anda. Jika Anda menggunakan sebuah *framework*, mungkin *framework* tersebut melakukan panggilan ini untuk Anda.
59+
* Jika aplikasi Anda di-*render* oleh klien tanpa HTML yang sudah di-*render* sebelumnya, penggunaan `hydrate()` tidak didukung. Alih-alih menggunakan `hydrate()`, gunakanlah [render()](/reference/react-dom/render) (untuk React 17 dan lebih rendah) atau [createRoot()](/reference/react-dom/client/createRoot) (untuk React 18+).
6060
6161
---
6262
63-
## Usage {/*usage*/}
63+
## Penggunaan {/*usage*/}
6464
65-
Call `hydrate` to attach a <CodeStep step={1}>React component</CodeStep> into a server-rendered <CodeStep step={2}>browser DOM node</CodeStep>.
65+
Panggil `hydrate` untuk melekatkan sebuah <CodeStep step={1}>komponen React</CodeStep> kepada <CodeStep step={2}>simpul DOM peramban</CodeStep> yang di-*render* di *server*.
6666
6767
```js [[1, 3, "<App />"], [2, 3, "document.getElementById('root')"]]
6868
import { hydrate } from 'react-dom';
6969

7070
hydrate(<App />, document.getElementById('root'));
7171
```
7272
73-
Using `hydrate()` to render a client-only app (an app without server-rendered HTML) is not supported. Use [`render()`](/reference/react-dom/render) (in React 17 and below) or [`createRoot()`](/reference/react-dom/client/createRoot) (in React 18+) instead.
73+
Penggunaan `hydrate()` untuk me-*render* aplikasi hanya di sisi klien (aplikasi tanpa HTML yang di-*render* oleh server) tidak didukung. Alih-alih menggunakan `hydrate()`, gunakanlah [`render()`](/reference/react-dom/render) (di React 17 dan lebih rendah) atau [`createRoot()`](/reference/react-dom/client/createRoot) (di React 18+).
7474
75-
### Hydrating server-rendered HTML {/*hydrating-server-rendered-html*/}
75+
### Menghidrasi HTML yang di-*render* oleh server {/*hydrating-server-rendered-html*/}
7676
77-
In React, "hydration" is how React "attaches" to existing HTML that was already rendered by React in a server environment. During hydration, React will attempt to attach event listeners to the existing markup and take over rendering the app on the client.
77+
Di React, "hidrasi" adalah bagaimana React "melekatkan" ke HTML yang sudah ada sebelumnya yang telah di-*render* oleh React di lingkungan *server*. Selama hidrasi, React akan mencoba untuk melekatkan *event listeners* ke *markup* yang ada dan mengambil alih pe-*render*-an aplikasi pada sisi klien.
7878
79-
In apps fully built with React, **you will usually only hydrate one "root", once at startup for your entire app**.
79+
Pada aplikasi yang sepenuhnya dibangun dengan React, **biasanya Anda hanya akan menghidrasi satu "akar" ("*root*"), yakni sekali saat memulai menjalankan seluruh aplikasi Anda"**.
8080
8181
<Sandpack>
8282
8383
```html public/index.html
8484
<!--
85-
HTML content inside <div id="root">...</div>
86-
was generated from App by react-dom/server.
85+
Konten HTML di dalam <div id="root">...</div>
86+
di-*generate* dari App oleh react-dom/server.
8787
-->
88-
<div id="root"><h1>Hello, world!</h1></div>
88+
<div id="root"><h1>Halo, dunia!</h1></div>
8989
```
9090
9191
```js index.js active
@@ -98,23 +98,23 @@ hydrate(<App />, document.getElementById('root'));
9898
9999
```js App.js
100100
export default function App() {
101-
return <h1>Hello, world!</h1>;
101+
return <h1>Halo, dunia!</h1>;
102102
}
103103
```
104104
105105
</Sandpack>
106106
107-
Usually you shouldn't need to call `hydrate` again or to call it in more places. From this point on, React will be managing the DOM of your application. To update the UI, your components will [use state.](/reference/react/useState)
107+
Biasanya Anda tidak perlu memanggil `hydrate` lagi atau memanggilnya di tempat lain. Dari titik ini, React akan mengelola DOM dari aplikasi Anda. Untuk memperbarui UI, komponen akan [menggunakan state.](/reference/react/useState)
108108
109-
For more information on hydration, see the docs for [`hydrateRoot`.](/reference/react-dom/client/hydrateRoot)
109+
Untuk informasi lebih lanjut tentang hidrasi, lihat dokumen untuk [`hydrateRoot`.](/reference/react-dom/client/hydrateRoot)
110110
111111
---
112112
113-
### Suppressing unavoidable hydration mismatch errors {/*suppressing-unavoidable-hydration-mismatch-errors*/}
113+
### Menghilangkan kesalahan ketidakcocokan hidrasi yang tidak dapat dihindari {/*suppressing-unavoidable-hydration-mismatch-errors*/}
114114
115-
If a single element’s attribute or text content is unavoidably different between the server and the client (for example, a timestamp), you may silence the hydration mismatch warning.
115+
Jika satu atribut elemen atau konten teks secara tidak terhindarkan berbeda antara server dan klien (misalnya, timestamp), Anda dapat menghilangkan peringatan ketidakcocokan hidrasi.
116116
117-
To silence hydration warnings on an element, add `suppressHydrationWarning={true}`:
117+
Untuk menghilangkan peringatan hidrasi pada elemen, tambahkan `suppressHydrationWarning={true}`:
118118
119119
<Sandpack>
120120
@@ -123,7 +123,7 @@ To silence hydration warnings on an element, add `suppressHydrationWarning={true
123123
HTML content inside <div id="root">...</div>
124124
was generated from App by react-dom/server.
125125
-->
126-
<div id="root"><h1>Current Date: 01/01/2020</h1></div>
126+
<div id="root"><h1>Tanggal Saat ini: 01/01/2020</h1></div>
127127
```
128128
129129
```js index.js
@@ -138,21 +138,21 @@ hydrate(<App />, document.getElementById('root'));
138138
export default function App() {
139139
return (
140140
<h1 suppressHydrationWarning={true}>
141-
Current Date: {new Date().toLocaleDateString()}
141+
Tanggal Saat ini: {new Date().toLocaleDateString()}
142142
</h1>
143143
);
144144
}
145145
```
146146
147147
</Sandpack>
148148
149-
This only works one level deep, and is intended to be an escape hatch. Don’t overuse it. Unless it’s text content, React still won’t attempt to patch it up, so it may remain inconsistent until future updates.
149+
Cara ini hanya berfungsi untuk satu tingkat kedalaman dan dimaksudkan untuk menjadi jalan keluar ketika tidak ada pilihan lain. Jangan terlalu sering menggunakannya. Kecuali jika itu adalah konten teks, React masih tidak akan mencoba memperbaikinya, sehingga konten tersebut mungkin tetap tidak konsisten sampai dengan pembaruan di versi-versi mendatang.
150150
151151
---
152152
153-
### Handling different client and server content {/*handling-different-client-and-server-content*/}
153+
### Mengatasi konten berbeda antara client dan server {/*handling-different-client-and-server-content*/}
154154
155-
If you intentionally need to render something different on the server and the client, you can do a two-pass rendering. Components that render something different on the client can read a [state variable](/reference/react/useState) like `isClient`, which you can set to `true` in an [effect](/reference/react/useEffect):
155+
Jika Anda sengaja perlu me-*render* sesuatu yang berbeda di server dan klien, Anda dapat melakukan dua kali pe-*render*-an. Komponen yang me-*render* sesuatu yang berbeda pada sisi klien dapat di baca di [*variabel state*](/reference/react/useState) seperti `isClient`, yang dapat ditetapkan ke `true` dalam sebuah [efek](/reference/react/useEffect):
156156
157157
<Sandpack>
158158
@@ -192,10 +192,10 @@ export default function App() {
192192
193193
</Sandpack>
194194
195-
This way the initial render pass will render the same content as the server, avoiding mismatches, but an additional pass will happen synchronously right after hydration.
195+
Dengan cara ini, proses *render* awal akan me-*render* konten yang sama dengan *server*, menghindari ketidakcocokan, tetapi ada tambahan proses synchronously setelah hidrasi.
196196
197197
<Pitfall>
198198
199-
This approach makes hydration slower because your components have to render twice. Be mindful of the user experience on slow connections. The JavaScript code may load significantly later than the initial HTML render, so rendering a different UI immediately after hydration may feel jarring to the user.
199+
Metode ini membuat hidrasi lebih lambat karena komponen Anda harus di-*render* dua kali. Pertimbangkan pengalaman pengguna pada koneksi yang lambat. Kode JavaScript dapat dimuat jauh setelah *render* HTML awal, sehingga me-*render* UI yang berbeda langsung setelah hidrasi dapat terasa tidak nyaman bagi pengguna.
200200
201201
</Pitfall>

0 commit comments

Comments
 (0)