Alors que je parcourais le HTML de certaines pages, j'ai remarqué que certaines d'entre elles utilisent cet attribut "data-reactid" comme:
<a data-reactid="......" ></a>
Quel est cet attribut et quelle est sa fonction?
javascript
html
reactjs
Ayman El Temsahi
la source
la source
data-reactid
est un attribut personnalisé utilisé par la bibliothèque JavaScript React . Qui est développé pour être utilisé avec Facebook et Instagram.Réponses:
L'
data-reactid
attribut est un attribut personnalisé utilisé pour que React puisse identifier de manière unique ses composants dans le DOM.Ceci est important car les applications React peuvent être rendues aussi bien sur le serveur que sur le client. En interne, React construit une représentation des références aux nœuds DOM qui composent votre application (la version simplifiée est ci-dessous).
Il n'y a aucun moyen de partager les références d'objet réelles entre le serveur et le client et l'envoi d'une version sérialisée de l'ensemble de l'arborescence des composants est potentiellement coûteux. Lorsque l'application est rendue sur le serveur et que React est chargé sur le client, les seules données dont il dispose sont les
data-reactid
attributs.Il doit pouvoir le reconvertir dans la structure de données ci-dessus. La façon dont il fait cela est avec les
data-reactid
attributs uniques . Cela s'appelle gonfler l'arborescence des composants.Vous remarquerez peut-être également que si React effectue un rendu côté client, il utilise l'
data-reactid
attribut, même s'il n'a pas besoin de perdre ses références. Dans certains navigateurs, il insère votre application dans le DOM en utilisant.innerHTML
puis gonfle immédiatement l'arborescence des composants, pour améliorer les performances.L'autre différence intéressante est que les ID React rendus côté client auront un format d'entier incrémental (comme
.0.1.4.3
), tandis que ceux rendus par le serveur seront préfixés avec une chaîne aléatoire (comme.loqi70ccu80.1.4.3
). En effet, l'application peut être rendue sur plusieurs serveurs et il est important qu'il n'y ait pas de collisions. Du côté client, il n'y a qu'un seul processus de rendu, ce qui signifie que des compteurs peuvent être utilisés pour garantir des identifiants uniques.React 15 utilise à la
document.createElement
place , donc le balisage rendu par le client n'inclura plus ces attributs.la source
C'est un attribut html personnalisé mais probablement dans ce cas, il est utilisé par la bibliothèque Facebook React JS.
Jetez un œil: http://facebook.github.io/react/
la source
Attribut de données personnalisé en HTML5
Je voudrais citer le commentaire d'Ian dans ma réponse:
reactid
est juste un suffixe, vous pouvez avoir un nom ici par exemple:data-Ayman
.Si vous voulez trouver la différence, vérifiez les violons dans cette réponse et commentaire SO .
la source
les attributs de données sont couramment utilisés pour diverses interactions. Généralement via javascript. Ils n'affectent en rien le comportement du site et constituent une méthode pratique pour transmettre des données à quelque fin que ce soit. Voici un article qui peut éclaircir les choses:
http://ejohn.org/blog/html-5-data-attributes/
Vous pouvez créer un attribut de données en préfixant
data-
n'importe quelle chaîne de sécurité d'attribut standard (alphanumérique sans espaces ni caractères spéciaux). Par exemple,data-id
ou dans ce casdata-reactid
la source
C'est l'attribut de données HTML. Voir ceci pour plus de détails: http://html5doctor.com/html5-custom-data-attributes/
Fondamentalement, il ne s'agit que d'un conteneur de vos données personnalisées tout en rendant le HTML valide. C'est
data-
plus un identifiant unique.la source