Skip to content

Commit fb8fab6

Browse files
rvndaputrar17x
authored andcommitted
docs: fix typos and improve readability
1 parent 9b57ab4 commit fb8fab6

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/content/learn/reusing-logic-with-custom-hooks.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -446,9 +446,9 @@ Ketika Anda perlu membagikan state itu sendiri antara beberapa komponen, [angkat
446446
447447
## Mengirimkan nilai reaktif antara Hooks {/*passing-reactive-values-between-hooks*/}
448448
449-
Kode di dalam Custom Hooks akan dijalankan kembali setiap kali komponen Anda dirender ulang. Oleh karena itu, seperti halnya komponen, Custom Hooks [harus bersifat murni.](/learn/keeping-components-pure) Bayangkan kode Custom Hooks sebagai bagian dari badan komponen Anda!
449+
Kode di dalam kustom Hooks akan dijalankan kembali setiap kali komponen Anda di-*render* ulang. Oleh karena itu, seperti halnya komponen, Custom Hooks [harus bersifat murni.](/learn/keeping-components-pure) Bayangkan kode kustom Hooks sebagai bagian dari badan komponen Anda!
450450
451-
Karena Custom Hooks di-render ulang bersama komponen Anda, mereka selalu menerima prop dan state terbaru. Untuk mengetahui apa artinya, pertimbangkan contoh ruang obrolan ini. Ubah URL server atau ruang obrolannya:
451+
Karena Custom Hooks di-*render* ulang bersama komponen Anda, mereka selalu menerima prop dan state terbaru. Untuk mengetahui apa artinya, pertimbangkan contoh ruang obrolan ini. Ubah URL server atau ruang obrolannya:
452452
453453
<Sandpack>
454454
@@ -832,7 +832,7 @@ export default function ChatRoom({ roomId }) {
832832
// ...
833833
```
834834
835-
Setiap kali komponen `ChatRoom` Anda di-render ulang, komponen `roomId` dan `serverUrl` terbaru diteruskan ke Hook Anda. Inilah sebabnya Effect Anda terhubung kembali ke obrolan setiap kali nilainya berbeda setelah render ulang. (Jika Anda pernah bekerja dengan perangkat lunak pemrosesan audio atau video, merantai Hooks seperti ini mungkin mengingatkan Anda pada efek visual atau audio yang saling terkait. Seolah-olah output dari `useState` "diumpankan ke dalam" input dari `useChatRoom`.)
835+
Setiap kali komponen `ChatRoom` Anda di-*render* ulang, komponen `roomId` dan `serverUrl` terbaru diteruskan ke Hook Anda. Inilah sebabnya Effect Anda terhubung kembali ke obrolan setiap kali nilainya berbeda setelah render ulang. (Jika Anda pernah bekerja dengan perangkat lunak pemrosesan audio atau video, merantai Hooks seperti ini mungkin mengingatkan Anda pada efek visual atau audio yang saling terkait. Seolah-olah output dari `useState` "diumpankan ke dalam" input dari `useChatRoom`.)
836836
837837
### Passing event handlers to custom Hooks {/*passing-event-handlers-to-custom-hooks*/}
838838
@@ -898,7 +898,7 @@ export function useChatRoom({ serverUrl, roomId, onReceiveMessage }) {
898898
899899
Ini akan berhasil, tetapi ada satu peningkatan lagi yang dapat Anda lakukan ketika custom Hook Anda menerima event handler.
900900
901-
Menambahkan dependensi pada `onReceiveMessage` tidak ideal karena akan menyebabkan chat terhubung kembali setiap kali komponen di-render ulang. [Bungkus event handler ini ke dalam Effect Event untuk menghapusnya dari dependensi:](/learn/removing-effect-dependencies#wrapping-an-event-handler-from-the-props)
901+
Menambahkan dependensi pada `onReceiveMessage` tidak ideal karena akan menyebabkan chat terhubung kembali setiap kali komponen di-*render* ulang. [Bungkus event handler ini ke dalam Effect Event untuk menghapusnya dari dependensi:](/learn/removing-effect-dependencies#wrapping-an-event-handler-from-the-props)
902902
903903
```js {1,4,5,15,18}
904904
import { useEffect, useEffectEvent } from 'react';
@@ -922,7 +922,7 @@ export function useChatRoom({ serverUrl, roomId, onReceiveMessage }) {
922922
}
923923
```
924924
925-
Sekarang obrolan tidak akan terhubung kembali setiap kali komponen `ChatRoom` di-render ulang. Berikut adalah demo yang berfungsi penuh untuk meneruskan event handler ke custom Hook yang dapat Anda mainkan:
925+
Sekarang obrolan tidak akan terhubung kembali setiap kali komponen `ChatRoom` di-*render* ulang. Berikut adalah demo yang berfungsi penuh untuk meneruskan event handler ke custom Hook yang dapat Anda mainkan:
926926
927927
<Sandpack>
928928
@@ -1877,7 +1877,7 @@ Terkadang, Anda bahkan tidak perlu menggunakan Hook!
18771877
- Custom Hook harus diberi nama yang dimulai dengan `use` diikuti oleh huruf kapital.
18781878
- Custom Hook hanya berbagi logika yang berhubungan dengan state, bukan state itu sendiri.
18791879
- Anda dapat meneruskan nilai reaktif dari satu Hook ke Hook lainnya, dan nilai tersebut tetap up-to-date.
1880-
- Semua Hook dijalankan ulang setiap kali komponen Anda dirender ulang.
1880+
- Semua Hook dijalankan ulang setiap kali komponen Anda di-*render* ulang.
18811881
- Kode dari custom Hook Anda harus bersifat murni, seperti kode komponen Anda.
18821882
- Bungkus event handler yang diterima oleh custom Hook menjadi Effect Events.
18831883
- Jangan membuat Custom Hook seperti `useMount`. Jaga agar tujuan mereka tetap spesifik.
@@ -2251,7 +2251,7 @@ export function useInterval(onTick, delay) {
22512251
22522252
Di dalam `useInterval`, bungkus callback tick menjadi sebuah Event Effect, seperti yang Anda lakukan [sebelumnya di halaman ini.](/learn/reusing-logic-with-custom-hooks#passing-event-handlers-to-custom-hooks)
22532253
2254-
Ini akan memungkinkan Anda menghilangkan `onTick` dari dependensi Effect Anda. Effect tidak akan disinkronkan setiap kali komponen dirender ulang, sehingga interval perubahan warna latar belakang halaman tidak akan diatur ulang setiap detik sebelum sempat aktif.
2254+
Ini akan memungkinkan Anda menghilangkan `onTick` dari *dependensi* Effect Anda. Effect tidak akan disinkronkan setiap kali komponen di-*render* ulang, sehingga interval perubahan warna latar belakang halaman tidak akan diatur ulang setiap detik sebelum sempat aktif.
22552255
22562256
Dengan perubahan ini, kedua interval akan berfungsi seperti yang diharapkan dan tidak saling mengganggu:
22572257
@@ -2324,7 +2324,7 @@ export function useInterval(callback, delay) {
23242324
23252325
Dalam contoh ini, Hook `usePointerPosition()` melacak posisi pointer saat ini. Coba gerakkan kursor atau jari Anda ke area pratinjau dan lihat titik merah mengikuti gerakan Anda. Posisinya disimpan dalam variabel `pos1`.
23262326
2327-
Faktanya, ada lima (!) titik merah yang berbeda yang dirender. Anda tidak melihat semuanya karena saat ini mereka semua muncul di posisi yang sama. Inilah yang perlu Anda perbaiki. Yang ingin Anda implementasikan adalah gerakan "bergiliran": setiap titik harus "mengikuti" jalur titik sebelumnya. Misalnya, jika Anda memindahkan kursor dengan cepat, titik pertama harus segera mengikuti dengan segera, titik kedua harus mengikuti titik pertama dengan penundaan kecil, titik ketiga harus mengikuti titik kedua, dan seterusnya.
2327+
Faktanya, ada lima (!) titik merah yang berbeda yang di-*render*. Anda tidak melihat semuanya karena saat ini mereka semua muncul di posisi yang sama. Inilah yang perlu Anda perbaiki. Yang ingin Anda implementasikan adalah gerakan "bergiliran": setiap titik harus "mengikuti" jalur titik sebelumnya. Misalnya, jika Anda memindahkan kursor dengan cepat, titik pertama harus segera mengikuti dengan segera, titik kedua harus mengikuti titik pertama dengan penundaan kecil, titik ketiga harus mengikuti titik kedua, dan seterusnya.
23282328
23292329
Anda perlu mengimplementasikan custom Hook `useDelayedValue`. Implementasi saat ini mengembalikan `value` yang diberikan kepadanya. Sebagai gantinya, Anda ingin mengembalikan nilai dari `delay` milidetik yang lalu. Anda mungkin memerlukan beberapa state dan sebuah Effect untuk melakukannya.
23302330

0 commit comments

Comments
 (0)