Masalah diselesaikan: 1. Ekstrak logik keadaan daripada komponen, menyelesaikan masalah penggunaan semula logik keadaan yang sukar antara komponen 2. Pisahkan bahagian komponen yang saling berkaitan kepada fungsi yang lebih kecil , selesaikan masalah komponen kompleks 3. Gunakan lebih banyak ciri React dalam situasi bukan kelas untuk menyelesaikan masalah perbezaan antara komponen kelas dan komponen fungsi.
Persekitaran pengendalian tutorial ini: Sistem Windows 10, bertindak balas versi 17.0.1, komputer Dell G3.
1 Sukar untuk menggunakan semula logik keadaan antara komponen
React tidak memberikan kebolehgunaan semula. untuk "melampirkan" tingkah laku pada komponen (contohnya, menyambungkan komponen ke stor) adalah untuk menyelesaikan masalah ini menggunakan prop render dan komponen peringkat lebih tinggi. Tetapi penyelesaian sedemikian memerlukan penyusunan semula struktur komponen, yang boleh menyusahkan dan membuat kod sukar difahami. Komponen yang terdiri daripada pembekal, pengguna, komponen tertib lebih tinggi, props render dan lapisan abstraksi lain boleh mencipta "neraka bersarang". Walaupun adalah mungkin untuk menapisnya dalam DevTools, ini menggambarkan masalah yang lebih mendalam: React perlu menyediakan cara asli yang lebih baik untuk logik keadaan dikongsi.
Cangkuk boleh digunakan untuk mengekstrak logik keadaan daripada komponen supaya logik ini boleh diuji secara individu dan digunakan semula. Cangkuk membolehkan kita menggunakan semula logik keadaan tanpa mengubah suai struktur komponen. Ini memudahkan untuk berkongsi Hooks antara komponen atau dalam komuniti.
2. Komponen kompleks menjadi sukar untuk difahami
Dalam komponen, setiap kitaran hayat selalunya mengandungi beberapa logik yang tidak relevan. Sebagai contoh, komponen sering mendapat data dalam componentDidMount dan componentDidUpdate. Walau bagaimanapun, componentDidMount yang sama juga mungkin mengandungi banyak logik lain, seperti menetapkan pendengar acara, yang perlu dikosongkan kemudian dalam componentWillUnmount. Kod yang berkaitan dan perlu diubah suai dipecahkan, manakala kod yang tidak berkaitan sepenuhnya digabungkan dalam kaedah yang sama. Ini boleh membawa kepada pepijat dan ketidakkonsistenan logik dengan mudah.
Dalam kebanyakan kes, komponen tidak boleh dibahagikan kepada butiran yang lebih kecil kerana logik stateful ada di mana-mana. Ini juga membawa cabaran tertentu kepada ujian. Pada masa yang sama, ini adalah salah satu sebab mengapa ramai orang menggunakan React dengan perpustakaan pengurusan negeri. Walau bagaimanapun, ini sering memperkenalkan banyak konsep abstrak dan memerlukan anda bertukar-tukar antara fail yang berbeza, menjadikan penggunaan semula lebih sukar.
Untuk menyelesaikan masalah ini, Hook membahagikan bahagian komponen yang saling berkaitan kepada fungsi yang lebih kecil (seperti menetapkan langganan atau meminta data), dan bukannya memaksa mereka dibahagikan mengikut kitaran hayat. Anda juga boleh menggunakan pengurang untuk mengurus keadaan dalaman komponen untuk menjadikannya lebih mudah diramal.
3. Kelas yang tidak dapat difahami
Selain kesukaran dalam penggunaan semula kod dan pengurusan kod, kelas merupakan penghalang utama untuk mempelajari React. Kita perlu memahami cara ini berfungsi dalam JavaScript, yang sangat berbeza daripada bahasa lain. Jangan lupa untuk mengikat pengendali acara. Tiada cadangan sintaks yang stabil dan kod itu sangat berlebihan. Semua orang boleh memahami prop, keadaan dan aliran data atas ke bawah dengan sangat baik, tetapi mereka rugi untuk kelas. Malah dalam kalangan pembangun React yang berpengalaman, terdapat perselisihan pendapat tentang perbezaan antara komponen fungsi dan komponen kelas, malah senario penggunaan kedua-dua komponen tersebut.
Untuk menyelesaikan masalah ini, Hooks membenarkan anda menggunakan lebih banyak ciri React tanpa kelas. Dari segi konsep, komponen React sentiasa lebih seperti fungsi. Cangkuk merangkul fungsi tanpa mengorbankan prinsip rohani React. Hook menyediakan penyelesaian kepada masalah tanpa mempelajari teknik pengaturcaraan berfungsi atau reaktif yang kompleks
Pembelajaran yang disyorkan: "tutorial video bertindak balas"
Atas ialah kandungan terperinci Apakah masalah yang boleh diselesaikan oleh cangkuk dalam tindak balas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!