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/react-dom/hydrate.md
+40-40Lines changed: 40 additions & 40 deletions
Original file line number
Diff line number
Diff line change
@@ -4,15 +4,15 @@ title: hydrate
4
4
5
5
<Deprecated>
6
6
7
-
This API will be removed in a future major version of React.
7
+
API ini akan dihapus pada React versi mayor berikutnya.
8
8
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)
10
10
11
11
</Deprecated>
12
12
13
13
<Intro>
14
14
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.
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*.
32
32
33
33
```js
34
34
import { hydrate } from'react-dom';
35
35
36
36
hydrate(reactNode, domNode);
37
37
```
38
38
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.
40
40
41
-
[See more examples below.](#usage)
41
+
[Lihat lebih banyak contoh di bawah ini.](#usage)
42
42
43
-
#### Parameters {/*parameters*/}
43
+
#### Parameter {/*parameters*/}
44
44
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.
46
46
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*.
48
48
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*).
50
50
51
-
#### Returns {/*returns*/}
51
+
#### Kembalian {/*returns*/}
52
52
53
-
`hydrate`returns null.
53
+
`hydrate`mengembalikan nilai kosong (*null*).
54
54
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+).
60
60
61
61
---
62
62
63
-
## Usage {/*usage*/}
63
+
## Penggunaan {/*usage*/}
64
64
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*.
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+).
74
74
75
-
### Hydrating server-rendered HTML {/*hydrating-server-rendered-html*/}
75
+
### Menghidrasi HTML yang di-*render* oleh server {/*hydrating-server-rendered-html*/}
76
76
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.
78
78
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"**.
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)
108
108
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)
### Menghilangkan kesalahan ketidakcocokan hidrasi yang tidak dapat dihindari {/*suppressing-unavoidable-hydration-mismatch-errors*/}
114
114
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.
116
116
117
-
To silence hydration warnings on an element, add`suppressHydrationWarning={true}`:
117
+
Untuk menghilangkan peringatan hidrasi pada elemen, tambahkan`suppressHydrationWarning={true}`:
118
118
119
119
<Sandpack>
120
120
@@ -123,7 +123,7 @@ To silence hydration warnings on an element, add `suppressHydrationWarning={true
Tanggal Saat ini: {newDate().toLocaleDateString()}
142
142
</h1>
143
143
);
144
144
}
145
145
```
146
146
147
147
</Sandpack>
148
148
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.
150
150
151
151
---
152
152
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*/}
154
154
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):
156
156
157
157
<Sandpack>
158
158
@@ -192,10 +192,10 @@ export default function App() {
192
192
193
193
</Sandpack>
194
194
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.
196
196
197
197
<Pitfall>
198
198
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.
0 commit comments