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?
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?
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.
Ini adalah atribut html khusus tetapi mungkin dalam kasus ini digunakan oleh Perpustakaan React JS Facebook.
Atribut Data Khusus di HTML5
Ingin mengutip komentar Ian dalam jawaban saya:
Itu hanya atribut (yang valid) pada elemen yang dapat Anda gunakan untuk menyimpan data / info tentangnya.
Kode ini kemudian mengambilnya nanti di event handler, dan menggunakannya untuk menemukan elemen keluaran target. Ini secara efektif menyimpan kelas div tempat teksnya harus dikeluarkan.
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 .
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
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.
data-reactid
adalah atribut khusus yang digunakan oleh pustaka JavaScript React . Yang dikembangkan untuk digunakan dengan Facebook & Instagram.