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: content/docs/reconciliation.md
+9-9Lines changed: 9 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -110,9 +110,9 @@ Jika Anda mengimplementasikan dengan naifnya, memasukan sebuah elemen di awal me
110
110
111
111
React akan mengubah setiap *child* daripada menyadari itu dapat menjaga keutuhan sub-pohon `<li>Duke</li>` dan `<li>Villanova</li>`. Ketidakefisienan ini bisa menjadi masalah.
112
112
113
-
### Kunci {#keys}
113
+
### Key {#keys}
114
114
115
-
Untuk mengatasi masalah ini, React mendukung atribut `key`. Saat *children* memiliki kunci, React menggunakan kunci untuk mencocokan *children* di dalam pohon yang asli dengan *children* di dalam pohon selanjutnya. Sebagai contoh, menambahkan `key` pada contoh tidak efisien kita diatas dapat membuat konversi pohon efisien:
115
+
Untuk mengatasi masalah ini, React mendukung atribut `key`. Saat *children* memiliki *key*, React menggunakan *key* untuk mencocokan *children* di dalam pohon yang asli dengan *children* di dalam pohon selanjutnya. Sebagai contoh, menambahkan `key` pada contoh tidak efisien kita diatas dapat membuat konversi pohon efisien:
116
116
117
117
```xml
118
118
<ul>
@@ -127,21 +127,21 @@ Untuk mengatasi masalah ini, React mendukung atribut `key`. Saat *children* memi
127
127
</ul>
128
128
```
129
129
130
-
Sekarang React tahu bahwa elemen dengan kunci`'2014'` adalah yang baru, dan elemen dengan kunci`'2015'` dan `'2016'` telah dipindahkan.
130
+
Sekarang React tahu bahwa elemen dengan *key*`'2014'` adalah yang baru, dan elemen dengan *key*`'2015'` dan `'2016'` telah dipindahkan.
131
131
132
-
Dalam prakteknya, menemukan sebuah kunci biasanya tidak sulit. Elemen yang akan Anda tampilkan mungkin sudah memiliki ID yang unik, jadi kuncinya bisa saja berasal dari data Anda:
132
+
Dalam prakteknya, menemukan sebuah *key* biasanya tidak sulit. Elemen yang akan Anda tampilkan mungkin sudah memiliki ID yang unik, jadi *key*-nya bisa saja berasal dari data Anda:
133
133
134
134
```js
135
135
<li key={item.id}>{item.name}</li>
136
136
```
137
137
138
-
Saat itu bukan kasusnya, Anda dapat menambahkan properti ID baru pada model Anda atau *hash* beberapa bagian dari konten untuk menghasilkan sebuah kunci. Kunci hanya harus unik antar *sibling*, bukan unik secara global.
138
+
Saat itu bukan kasusnya, Anda dapat menambahkan properti ID baru pada model Anda atau *hash* beberapa bagian dari konten untuk menghasilkan sebuah *key*. *Key* hanya harus unik antar *sibling*, bukan unik secara global.
139
139
140
-
Sebagai pilihan terakhir, Anda dapat mengoper sebuah indeks *item* dalam senarai (*array*) sebagai kunci. Ini dapat bekerja dengan baik jika *item-item* tidak pernah diurutkan kembali, tetapi pengurutan kembali akan menjadi lambat.
140
+
Sebagai pilihan terakhir, Anda dapat mengoper sebuah indeks *item* dalam senarai (*array*) sebagai *key*. Ini dapat bekerja dengan baik jika *item-item* tidak pernah diurutkan kembali, tetapi pengurutan kembali akan menjadi lambat.
141
141
142
-
Pengurutan kembali juga dapat menyebabkan masalah dengan *state* komponen saat indeks digunakan sebagai kunci. *Instance* komponen diperbarui dan digunakan kembali berdasarkan kuncinya. Jika kunci adalah indeks, memindahkan sebuah *item* akan mengubahnya. Sebagai hasil, *state* komponen untuk hal seperti *uncontrolled input* dapat tercampur dan diperbarui dengan cara yang tidak terduga.
142
+
Pengurutan kembali juga dapat menyebabkan masalah dengan *state* komponen saat indeks digunakan sebagai *key*. *Instance* komponen diperbarui dan digunakan kembali berdasarkan *key*-nya. Jika *key* adalah indeks, memindahkan sebuah *item* akan mengubahnya. Sebagai hasil, *state* komponen untuk hal seperti *uncontrolled input* dapat tercampur dan diperbarui dengan cara yang tidak terduga.
143
143
144
-
[Disini](codepen://reconciliation/index-used-as-key) adalah contoh masalah yang dapat disebabkan oleh penggunaan indeks sebagai kunci pada CodePen, dan [disini](codepen://reconciliation/no-index-used-as-key) adalah versi terbaru dari contoh yang sama menunjukan bagaimana agar tidak menggunakan indeks sebagai kunci akan memperbaiki pengurutan kembali, penyortiran, dan masalah yang saling terkait ini.
144
+
[Disini](codepen://reconciliation/index-used-as-key) adalah contoh masalah yang dapat disebabkan oleh penggunaan indeks sebagai *key* pada CodePen, dan [disini](codepen://reconciliation/no-index-used-as-key) adalah versi terbaru dari contoh yang sama menunjukan bagaimana agar tidak menggunakan indeks sebagai *key* akan memperbaiki pengurutan kembali, penyortiran, dan masalah yang saling terkait ini.
145
145
146
146
## Pengorbanan {#tradeoffs}
147
147
@@ -153,4 +153,4 @@ Karena React bergantung pada heuristik, jika asumsi dibelakang mereka tidak terp
153
153
154
154
1. Algoritma tidak akan mencoba untuk mencocokan sub-pohon dari jenis komponen yang berbeda. Jika Anda melihat diri Anda sendiri bergantian antara dua jenis komponen dengan keluaran yang sangat mirip, Anda mungkin ingin untuk membuatnya menjadi jenis yang sama. Dalam prakteknya, Kita belum menemukan ini sebagai masalah.
155
155
156
-
2.Kunci harus stabil, dapat diprediksi, dan unik. Kunci yang tidak stabil (seperti yang diproduksi oleh `Math.random()`) akan menyebabkan banyak *instance* komponen dan node DOM tidak perlu diciptakan kembali, yang dapat menyebabkan penurunan kinerja dan *state* hilang dalam komponen *child*.
156
+
2.*Key* harus stabil, dapat diprediksi, dan unik. *Key* yang tidak stabil (seperti yang diproduksi oleh `Math.random()`) akan menyebabkan banyak *instance* komponen dan node DOM tidak perlu diciptakan kembali, yang dapat menyebabkan penurunan kinerja dan *state* hilang dalam komponen *child*.
0 commit comments