Ketika saya mempelajari HTML dari beberapa halaman, saya melihat bahwa beberapa di antaranya menggunakan atribut "data-reactid" seperti:
<a data-reactid="......" ></a>
Apa atribut itu dan apa fungsinya?
javascript
html
reactjs
Ayman El Temsahi
sumber
sumber
data-reactid
adalah atribut khusus yang digunakan oleh pustaka JavaScript React . Yang dikembangkan untuk digunakan dengan Facebook & Instagram.Jawaban:
The
data-reactid
atribut atribut khusus digunakan sehingga Bereaksi unik dapat mengidentifikasi komponen-komponennya dalam DOM.Ini penting karena aplikasi React dapat dirender di server dan juga klien. Internal React membangun representasi referensi ke node DOM yang membentuk aplikasi Anda (versi yang disederhanakan ada di bawah).
{ id: '.1oqi7occu80', node: DivRef, children: [ { id: '.1oqi7occu80.0', node: SpanRef, children: [ { id: '.1oqi7occu80.0.0', node: InputRef, children: [] } ] } ] }
Tidak ada cara untuk membagikan referensi objek aktual antara server dan klien, dan mengirim versi serial dari keseluruhan struktur pohon berpotensi mahal. Ketika aplikasi di-render di server dan React dimuat di klien, satu-satunya data yang dimilikinya adalah
data-reactid
atributnya.<div data-reactid='.loqi70ccu80'> <span data-reactid='.loqi70ccu80.0'> <input data-reactid='.loqi70ccu80.0' /> </span> </div>
Itu harus dapat mengubahnya kembali menjadi struktur data di atas. Cara melakukannya adalah dengan
data-reactid
atribut unik . Ini disebut menggembungkan pohon komponen.Anda mungkin juga memperhatikan bahwa jika React merender di sisi klien, React menggunakan
data-reactid
atribut, meskipun tidak perlu kehilangan referensinya. Di beberapa browser, ini memasukkan aplikasi Anda ke DOM menggunakan.innerHTML
kemudian itu memekarkan pohon komponen secara langsung, sebagai pendorong kinerja.Perbedaan menarik lainnya adalah bahwa ID React yang dirender sisi klien akan memiliki format integer tambahan (seperti
.0.1.4.3
), sedangkan yang dirender server akan diawali dengan string acak (seperti.loqi70ccu80.1.4.3
). Ini karena aplikasi mungkin dirender di beberapa server dan penting bahwa tidak ada benturan. Di sisi klien, hanya ada satu proses rendering, yang berarti penghitung dapat digunakan untuk memastikan id unik.React 15 menggunakan
document.createElement
sebagai gantinya , jadi markup yang diberikan klien tidak akan menyertakan atribut ini lagi.sumber
Ini adalah atribut html khusus tetapi mungkin dalam kasus ini digunakan oleh Perpustakaan React JS Facebook.
Lihat: http://facebook.github.io/react/
sumber
Atribut Data Khusus di HTML5
Ingin mengutip komentar Ian dalam jawaban saya:
reactid
hanya akhiran, Anda dapat memiliki nama apa pun di sini misalnya:data-Ayman
.Jika Anda ingin menemukan perbedaannya, periksa biola di jawaban dan komentar SO ini .
sumber
atribut data biasanya digunakan untuk berbagai interaksi. Biasanya melalui javascript. Mereka tidak memengaruhi apa pun terkait perilaku situs dan berfungsi sebagai metode yang nyaman untuk meneruskan data untuk tujuan apa pun yang diperlukan. Berikut adalah artikel yang mungkin menjelaskan semuanya:
http://ejohn.org/blog/html-5-data-attributes/
Anda dapat membuat atribut data dengan mengawali
data-
ke string aman atribut standar apa pun (alfanumerik tanpa spasi atau karakter khusus). Misalnya,data-id
atau dalam kasus inidata-reactid
sumber
Itu adalah atribut data HTML. Lihat ini untuk detail lebih lanjut: http://html5doctor.com/html5-custom-data-attributes/
Pada dasarnya ini hanya penampung data khusus Anda sambil tetap membuat HTML valid. Ini
data-
ditambah beberapa pengenal unik.sumber