Apakah react.js masuk akal untuk situs berbasis konten statis?

14

Saya cukup dijual dengan model react.js karena itu membuat manipulasi DOM begitu halus dan mudah dipahami. Tapi saya bertanya-tanya bagaimana itu bisa dimanfaatkan untuk situs yang sebagian besar statis dengan blok besar teks dan gambar yang tidak bergerak. Apakah itu hanya akan menghalangi? Tampaknya aneh untuk memiliki komponen dengan KB teks di negara mereka.

jiggy
sumber
4
Anda memiliki palu, dan merenungkan apakah sekrup ini dapat digunakan sebagai paku. Biasanya, keputusan yang berhubungan dengan teknologi harus dibuat sepanjang garis "Persyaratan kami adalah X, Y, Z. Teknologi mana yang akan memungkinkan kami untuk sampai di sana dengan biaya terendah?", Bukan "Saya punya solusi, tapi bisakah Anda memberi saya masalah? ". Fakta bahwa Anda sudah memiliki pengalaman dengan Bereaksi miring keputusan agak mendukungnya, tetapi persyaratan apa yang akan dipenuhi olehnya? Nilai apa yang akan ditambahkan ke pelanggan atau pengguna?
amon
4
Nah, itulah yang saya coba tentukan. Apakah Bereaksi palu atau kotak peralatan? Itu pasti unggul dalam jenis kasus penggunaan yang dimiliki Facebook dan saya belum melihat apa pun untuk menunjukkan itu akan menyedot kasus lain. Ini jelas kurang menarik, tetapi itu tidak berarti itu tidak baik-baik saja.
jiggy
1
Saya sebenarnya memiliki pertanyaan yang sama. Saya suka segala sesuatu tentang komponen Bereaksi tetapi untuk situs-situs yang digerakkan oleh konten dengan hanya beberapa baris javascript, sepertinya lebih fokus pada kopling HTML-JS dan lebih pada status dan acara daripada HTML-CSS bersih. Saya suka sesuatu seperti Bereaksi komponen dalam bahasa templating lain.
JeroenVdb

Jawaban:

10

Ketahui apa yang ingin Anda lakukan, lalu pilih teknologinya.

Dari sudut pandang itu, React.js tampaknya berlebihan untuk web yang kebanyakan statis.

Dari situs web React:

Kami membangun React untuk memecahkan satu masalah: membangun aplikasi besar dengan data yang berubah seiring waktu.

Bereaksi adalah palu untuk kuku tertentu. Itu akan menunjukkan bahwa itu akan menghalangi pembuatan sebagian besar situs web statis.

Miyamoto Akira
sumber
2

Membuat halaman statis adalah penggunaan React yang telah diantisipasi, sebagaimana disebutkan dalam dokumentasi untuk React.renderToStaticMarkup

Mirip dengan renderToString, kecuali ini tidak membuat atribut DOM tambahan seperti data-react-id, yang Bereaksi menggunakan secara internal. Ini berguna jika Anda ingin menggunakan Bereaksi sebagai generator halaman statis sederhana, karena menghapus atribut tambahan dapat menghemat banyak byte.

Beberapa orang menyebut penggunaan reaksi di sini berlebihan. Namun, ketika saya ingin sesuatu mati, saya tidak punya masalah dengan menimpanya. Fakta bahwa reaksi dapat melakukan jauh lebih banyak daripada yang diperlukan untuk kasus penggunaan ini adalah tidak ada argumen yang menentang reaksi.

Namun, masalah dapat muncul jika Anda ingin melakukan kode asinkron. Mari kita bayangkan yang berikut ini:

function SchoolClass({classId}) {
   const students = await query("SELECT name FROM student WHERE class = ?", classId);
   return <ul>
      {_.map(students, ({name}) => <li>{name}</li>}
   </ul>
}

Tetapi ini tidak akan berfungsi, karena fungsi mengembalikan Janji, bukan elemen Bereaksi, dan karenanya tidak kompatibel dengan Bereaksi. Jika Anda merancang kerangka kerja generator situs statis React-style, Anda mungkin akan mengizinkan ini. Namun, karena Bereaksi terfokus pada klien webapp, itu tidak diizinkan.

Winston Ewert
sumber