Pertanyaan ini telah berputar-putar di kepala saya sejak saya membaca catatan rilis (dan hype terkait lainnya) sekitar React 0,14 - Saya penggemar React dan saya pikir komponen stateless ( https: //facebook.github. io / react / blog / 2015/09/10 / react-v0.14-rc1.html # stateless-function-components ) adalah ide bagus, baik untuk kemudahan menulis komponen seperti itu dan untuk mengekspresikan dalam kode maksud bahwa ini komponen harus "murni" dalam hal rendering secara konsisten untuk data alat peraga yang sama.
Pertanyaannya adalah: bagaimana mungkin React untuk mengoptimalkan fungsi komponen stateless ini tanpa menjadi babi utuh dan berasumsi bahwa referensi alat peraga tidak hanya abadi karena mereka tidak boleh dimanipulasi di dalam komponen, tetapi juga bahwa mereka tidak akan pernah bisa berubah di luar siklus hidup komponen? Alasan bahwa komponen "reguler" (alias komponen stateful - dengan kata lain, komponen yang melewati seluruh siklus hidup; componentWillMount, getInitialState, dll.) Memiliki fungsi opsional "shouldComponentUpdate" karena Bereaksi tidak berasumsi bahwa semua alat peraga dan referensi negara sepenuhnya tidak dapat diubah. Setelah komponen diberikan, sifat-sifat tertentu dari referensi alat peraga dapat berubah dan dengan demikian contoh "alat peraga" yang sama mungkin memiliki konten yang berbeda di kemudian hari. Ini adalah sebagian alasan mengapa ada banyak kegembiraan atas penggunaan struktur yang sepenuhnya tidak dapat diubah dan mengapa dikatakan bahwa menggunakan Om dengan React dapat menawarkan keuntungan kinerja yang luar biasa; karena struktur yang tidak dapat diubah yang digunakan di sana menjamin bahwa setiap instance dari objek apa pun tidak akan pernah dapat dimutasi, maka sebaiknya ComponentUpdate dapat melakukan pemeriksaan kesetaraan referensi yang sangat murah pada alat peraga dan negara (http://swannodette.github.io/2013/12/17/the-future-of-javascript-mvcs/ ).
Saya sudah mencoba mencari tahu informasi lebih lanjut tentang ini tetapi belum punya tempat. Saya tidak dapat membayangkan peningkatan kinerja apa yang dapat dilakukan di sekitar komponen tanpa kewarganegaraan tanpa menganggap bahwa data alat peraga akan terdiri dari jenis yang tidak dapat diubah .. mungkin beberapa analisis awal dari jenis alat peraga yang tidak dapat diubah untuk mencoba menebak apakah "alat peraga" dan "tanaman berikutnya" mewakili data yang sama?
Saya hanya ingin tahu apakah ada yang punya informasi orang dalam atau wawasan yang mencerahkan tentang hal ini. Jika Bereaksi memang mulai menuntut agar jenis alat peraga "sepenuhnya tidak berubah" (izinkan perbandingan perbandingan kesetaraan untuk mengonfirmasi bahwa data tidak berubah) maka saya pikir itu akan menjadi langkah maju yang hebat, tetapi itu juga bisa menjadi perubahan besar.