1 00:00:02,220 --> 00:00:08,070 Jadi kami ingin mengambil semua bahan setiap kali komponen bahan ini diberikan. 2 00:00:08,540 --> 00:00:12,480 Sekarang seperti yang saya sebutkan di akhir kuliah terakhir biasanya kita akan menggunakan komponen 3 00:00:12,480 --> 00:00:15,500 yang dipasang untuk mengambil sesuatu ketika komponen ini dipasang. 4 00:00:15,600 --> 00:00:20,190 Tapi ini sekarang bukan pilihan lagi kecuali kita mengubahnya menjadi komponen berbasis kelas. 5 00:00:20,190 --> 00:00:22,780 Tapi ada kaitan lain yang membantu kita. 6 00:00:22,870 --> 00:00:26,130 Ini untuk menggunakan efek yang diambil. 7 00:00:26,300 --> 00:00:30,910 Bagaimana cara kerjanya sama seperti Anda menyatakan aturan yang sama berlaku. 8 00:00:30,930 --> 00:00:35,660 Anda hanya dapat menggunakannya dalam komponen fungsional atau Robert Hooks dan Anda harus menggunakannya di tingkat root. 9 00:00:35,760 --> 00:00:37,520 Mari kita gunakan di sini. 10 00:00:37,620 --> 00:00:45,540 Gunakan efek, gunakan fakta yang harus disebutkan karena ada untuk Anda mengelola efek samping dalam permintaan HBP adalah efek 11 00:00:45,600 --> 00:00:52,930 samping khas efek samping pada dasarnya berarti bahwa Anda memiliki beberapa logika yang berjalan yang mempengaruhi aplikasi 12 00:00:52,930 --> 00:00:59,650 Anda, misalnya kami mengambil beberapa data di sini tapi itu belum selesai dalam siklus penyaji 13 00:01:00,330 --> 00:01:07,920 saat ini atau mungkin itu mempengaruhi sesuatu yang di luar lingkup kode J ex Anda di sana mungkin 14 00:01:07,930 --> 00:01:11,010 Anda mengatur judul dokumen seperti itu. 15 00:01:11,200 --> 00:01:17,720 Jadi apa pun yang Anda tidak dapat mengelola dengan komponen dos normal Anda 16 00:01:17,720 --> 00:01:27,170 mendapatkan efek penggunaan aliran yang diberikan dan itu penting secara default dieksekusi setelah penting setelah setiap komponen membuat siklus. 17 00:01:27,170 --> 00:01:32,630 Jadi setelah komponen ini di-render untuk pertama kalinya fungsi yang Anda lewati menggunakan efek karena 18 00:01:32,630 --> 00:01:35,690 Anda harus mengurai fungsi di sana akan dieksekusi. 19 00:01:35,690 --> 00:01:39,270 Jadi ini berjalan ketika komponen ini kembali ditampilkan. 20 00:01:39,290 --> 00:01:44,240 Dan itu sangat penting untuk diingat setelah dan untuk setiap siklus render, ini 21 00:01:44,240 --> 00:01:50,290 adalah dua bagian penting yang sebelumnya tidak secara bersamaan tetapi setelah dan untuk setiap siklus render. 22 00:01:50,300 --> 00:01:58,760 Sekarang mengapa kita perlu menggunakan efek meskipun kita bisa memanggil mengambil untuk mendapatkan data kita seperti ini semacam efek penggunaan 23 00:01:58,760 --> 00:01:59,630 yang benar. 24 00:01:59,810 --> 00:02:05,280 Kami dapat memanggil fetch point di ini Anda atau saya akan secara otomatis mengirim permintaan get 25 00:02:05,300 --> 00:02:14,810 dan memang hari penawaran kami akan mendapatkan data kami kembali dan kemudian kami dapat pada saat itu memblokir kami akan mendapatkan respons dan kami dapat mengembalikan respons Jason 26 00:02:14,840 --> 00:02:22,130 untuk mendapatkan akses ke badan respons dan kami dapat menambahkan angka kemudian memblokir yang merupakan data respons kami dan ya kami juga 27 00:02:22,340 --> 00:02:25,420 harus menangani kesalahan yang akan kami lakukan nanti. 28 00:02:25,460 --> 00:02:27,300 Jadi di sini kita mendapat data tanggapan kita. 29 00:02:27,320 --> 00:02:32,390 Ini dijalankan ketika komponen ini merender dan itulah yang kami inginkan saat ini diberikan 30 00:02:32,390 --> 00:02:34,370 untuk pertama kali kami mengambilnya. 31 00:02:34,400 --> 00:02:40,910 Jadi di sini kita mendapatkan data respons dan data respons dan case dasar api sebenarnya akan menjadi objek bukan 32 00:02:40,910 --> 00:02:41,390 array. 33 00:02:41,390 --> 00:02:49,080 Jadi kita harus mengubah ini bahan yang dimuat, katakanlah adalah array kosong yang merupakan konstanta pembantu di sini yang saya buat, lalu saya gunakan 34 00:02:49,080 --> 00:02:55,650 untuk di dalam loop untuk mencari semua kunci saya dalam data respons itu karena sekali lagi data respons akan menjadi 35 00:02:55,650 --> 00:03:01,710 objek setiap kunci akan dan Anda pada dasarnya dapat melihat objek di sini setiap kunci akan menjadi ide yang 36 00:03:01,710 --> 00:03:06,410 unik dan nilai untuk kunci itu akan menjadi data aktual untuk bahan kami. 37 00:03:06,630 --> 00:03:12,550 Jadi kita akan memiliki objek keseluruhan dengan I. baru ini D. kunci di sini dan kemudian benda-benda bersarang ini. 38 00:03:12,630 --> 00:03:17,380 Jadi di sini kuncinya adalah ide unik dan nilai ini untuk tanggal tanggapan. 39 00:03:17,380 --> 00:03:20,430 Kunci kemudian akan menjadi data bahan konkret kami. 40 00:03:20,850 --> 00:03:26,790 Jadi karena itu di sini saya dapat menggunakan bahan-bahan yang dimuat array yang saya buat di sini dan mendorong bahan baru 41 00:03:26,790 --> 00:03:27,660 ke atasnya. 42 00:03:27,660 --> 00:03:33,740 Itu konstan tetapi dengan Pausch kami tidak mengedit nilai yang disimpan dan memuat bahan yang kami edit. 43 00:03:33,810 --> 00:03:40,350 Array disimpan dalam memori dan jika itu tidak jelas untuk Anda lampirkan untuk menemukan sumber daya pada referensi 44 00:03:40,470 --> 00:03:44,220 referensi javascript dan tipe primitif yang ada hubungannya dengan itu. 45 00:03:44,220 --> 00:03:48,020 Jadi di sini saya bagian Anda keberatan ke array bahan yang dimuat ini. 46 00:03:48,090 --> 00:03:58,000 Idenya adalah kunci itu dan judulnya merespons data untuk kunci itu dengan sintaks dinamis ini di sini. 47 00:03:58,180 --> 00:04:06,380 Judul DOBBS dan jumlahnya adalah tanggal respons untuk jumlah titik kunci mati. 48 00:04:06,510 --> 00:04:11,550 Jadi ini bagaimana saya memuat bahan saya bagaimana saya mengubah objek ini ke array 49 00:04:11,550 --> 00:04:19,860 dan setelah transformasi ini dilakukan begitu sering untuk loop di sini kita tentu saja dapat memanggil set bahan pengguna dan mengatur sama dengan bahan 50 00:04:19,860 --> 00:04:22,890 yang dimuat sehingga untuk array ini kami buat. 51 00:04:22,890 --> 00:04:26,430 Pendekatan ini memiliki satu masalah besar. 52 00:04:26,430 --> 00:04:32,910 Jika Anda menyimpan ini, Anda benar-benar berakhir dengan loop tak terbatas di sini kesombongan adalah jika Anda mengakses 53 00:04:32,910 --> 00:04:35,510 tab jaringan Anda mengirim banyak permintaan. 54 00:04:35,610 --> 00:04:41,940 Karena itu saya akan dengan cepat berkomentar baris bahan pengguna yang ditetapkan di sini sehingga ini memuat kembali dan 55 00:04:41,940 --> 00:04:43,320 kami berhenti mengirim ini. 56 00:04:43,320 --> 00:04:47,690 Jadi mengapa kita memasuki infinite loop di sini jika kita mengambil data seperti ini. 57 00:04:47,850 --> 00:04:54,180 Jika Anda mengambil data di sini di fungsi render Anda maka setiap kali 58 00:04:54,180 --> 00:05:02,120 bahan membuat Anda mengirim permintaan HDP dan ketika Anda kemudian hasilnya sering permintaan HDP memperbarui negara Anda. 59 00:05:02,130 --> 00:05:07,590 Apa yang terjadi jika Anda memperbarui komponen negara bagian Anda dirender lagi sehingga bahan merender lagi dan apa 60 00:05:07,590 --> 00:05:08,510 artinya ini. 61 00:05:08,580 --> 00:05:11,280 Kami mengirim permintaan PDB yang marah apa artinya ini. 62 00:05:11,370 --> 00:05:13,190 Kami memperbarui keadaan di beberapa titik. 63 00:05:13,200 --> 00:05:14,260 Apa artinya ini. 64 00:05:14,340 --> 00:05:15,330 Kami membuat. 65 00:05:15,330 --> 00:05:16,770 Kami mengirim permintaan lain. 66 00:05:16,770 --> 00:05:19,650 Kami memperbarui status yang kami berikan berakhir. 67 00:05:19,650 --> 00:05:20,780 Jadi itulah loop tak terbatas. 68 00:05:20,820 --> 00:05:23,600 Itu sebabnya mengirim ini ke sini bukan pilihan. 69 00:05:23,820 --> 00:05:29,160 Jadi mari kita tangkap ini di sini dan mari kita pindahkan ke fungsi efek penggunaan ini di sini. 70 00:05:29,220 --> 00:05:30,540 Sekarang komentar kembali. 71 00:05:30,540 --> 00:05:37,740 Sekarang kita menjalankan ini setelah setiap siklus pelari tetapi masih secara default untuk setiap siklus render dan karenanya tidak mengejutkan 72 00:05:37,740 --> 00:05:43,290 jika saya mengamankan dan kita pergi ke tab jaringan kita masih memiliki loop tak terbatas. 73 00:05:43,400 --> 00:05:48,750 Jadi sekali lagi mari kita beri komentar di sini dan aman untuk memperbarui halaman kami dan menghentikan loop itu. 74 00:05:49,460 --> 00:05:52,930 Jadi bagaimana kita bisa memperbaikinya? 75 00:05:53,090 --> 00:05:56,060 Sebenarnya semua itu butuh argumen kedua. 76 00:05:56,060 --> 00:06:00,410 Argumen pertama adalah fungsi ini yang dijalankan setelah setiap siklus render. 77 00:06:00,410 --> 00:06:08,090 Argumen kedua adalah array dengan dependensi fungsi Anda dan hanya ketika dependensi seperti itu berubah 78 00:06:08,090 --> 00:06:11,940 hanya maka fungsi tersebut akan menjalankan kembali. 79 00:06:11,960 --> 00:06:17,680 Jadi ini memungkinkan Anda untuk mengontrol seberapa sering fungsi berjalan secara default untuk setiap siklus render. 80 00:06:17,690 --> 00:06:19,550 Tapi Anda bisa mengubahnya. 81 00:06:19,610 --> 00:06:26,540 Sekarang di sini kita sebenarnya tidak memiliki dependensi eksternal dan dengan dependensi eksternal yang saya maksud adalah variabel atau 82 00:06:26,540 --> 00:06:32,690 data yang Anda gunakan yang Anda tentukan dalam komponen Anda di luar fungsi use use mempengaruhi. 83 00:06:32,840 --> 00:06:38,480 Kami tidak menggunakan apa pun dari itu sehingga Anda adalah respon hardcoded adalah variabel yang dibuat di sini dengan 84 00:06:38,480 --> 00:06:38,980 cepat. 85 00:06:38,980 --> 00:06:43,240 Data respons memuat bahan yang semuanya dibuat di fly set. 86 00:06:43,250 --> 00:06:44,220 Bahan pengguna. 87 00:06:44,280 --> 00:06:47,740 Itu sebenarnya fungsi yang disimpan dalam variabel. 88 00:06:47,750 --> 00:06:49,280 Datang dari luar. 89 00:06:49,280 --> 00:06:51,950 Tapi itu fungsi khusus karena ini dihasilkan oleh penggunaan. 90 00:06:51,950 --> 00:06:58,940 Negara bereaksi secara otomatis membuatnya sedemikian sehingga disfungsi tidak pernah benar-benar berubah dan tidak harus 91 00:06:58,940 --> 00:07:00,690 dianggap sebagai ketergantungan. 92 00:07:00,710 --> 00:07:07,550 Jadi itu pengecualian karena ini adalah fungsi yang dihasilkan oleh kondisi penggunaan dan oleh karena itu fungsi ini mempengaruhi fungsi di sini 93 00:07:07,550 --> 00:07:12,980 sebenarnya tidak memiliki dependensi eksternal dan jadi kita dapat menambahkan array kosong tetapi kita harus melakukan itu 94 00:07:12,980 --> 00:07:15,110 dengan mengakui bahwa itu bukan pilihan. 95 00:07:15,110 --> 00:07:17,330 Dennis berjalan untuk setiap siklus render. 96 00:07:17,630 --> 00:07:24,530 Jika Anda menambahkan array kosong meskipun yang terjadi adalah ini sekarang berjalan ketika komponen ini pertama kali 97 00:07:24,530 --> 00:07:25,090 diberikan. 98 00:07:25,190 --> 00:07:27,850 Jadi ini berjalan sekali saja. 99 00:07:27,890 --> 00:07:33,530 Itu tidak diakui sepenuhnya tetapi berjalan satu kali tetapi tidak pernah berjalan sesudahnya. 100 00:07:33,560 --> 00:07:40,370 Jadi dengan array kosong itu seperti komponen yang bisa me-mount jenis utang yang dihafal dengan array kosong 101 00:07:40,370 --> 00:07:41,600 sebagai argumen kedua. 102 00:07:41,660 --> 00:07:50,080 Fungsi yang Anda harus gunakan efeknya adalah seperti komponen melakukan mount jadi jika kita menyimpan ini sekarang jika kita pergi ke tab 103 00:07:50,080 --> 00:07:56,760 jaringan kita tidak melihat permintaan yang sedang berlangsung di sana dan kita melihat data kita dimuat. 104 00:07:56,760 --> 00:08:03,360 Itu jika saya menyimpan lagi ketika Anda melihat data kami dimuat sehingga ini sekarang bekerja dengan bantuan efek 105 00:08:03,360 --> 00:08:03,810 penggunaan.