Enquanto eu examinava o HTML de algumas páginas, percebi que algumas delas usam esse atributo "data-reactid" como:
<a data-reactid="......" ></a>
Qual é esse atributo e qual é sua função?
javascript
html
reactjs
Ayman El Temsahi
fonte
fonte
data-reactid
é um atributo personalizado usado pela biblioteca React JavaScript . Que é desenvolvido para usar com Facebook e Instagram.Respostas:
O
data-reactid
atributo é um atributo personalizado usado para que o React possa identificar exclusivamente seus componentes dentro do DOM.Isso é importante porque os aplicativos React podem ser renderizados no servidor e também no cliente. Internamente, o React cria uma representação de referências aos nós DOM que constituem seu aplicativo (a versão simplificada está abaixo).
Não há como compartilhar as referências reais do objeto entre o servidor e o cliente, e enviar uma versão serializada de toda a árvore de componentes é potencialmente caro. Quando o aplicativo é renderizado no servidor e o React é carregado no cliente, os únicos dados que ele possui são os
data-reactid
atributos.Ele precisa ser capaz de converter isso de volta na estrutura de dados acima. A maneira como isso acontece é com os
data-reactid
atributos exclusivos . Isso é chamado de inflar a árvore de componentes.Você também pode notar que se o React renderizar no lado do cliente, ele usará o
data-reactid
atributo, mesmo que não precise perder suas referências. Em alguns navegadores, ele insere seu aplicativo no DOM usando e.innerHTML
então infla a árvore de componentes imediatamente, como um aumento de desempenho.A outra diferença interessante é que os ids do React renderizados do lado do cliente terão um formato de inteiro incremental (como
.0.1.4.3
), enquanto os renderizados pelo servidor serão prefixados com uma string aleatória (como.loqi70ccu80.1.4.3
). Isso ocorre porque o aplicativo pode ser renderizado em vários servidores e é importante que não haja colisões. No lado do cliente, há apenas um processo de renderização, o que significa que os contadores podem ser usados para garantir ids exclusivos.Em
document.createElement
vez disso , o React 15 usa , portanto, a marcação renderizada pelo cliente não incluirá mais esses atributos.fonte
É um atributo html personalizado, mas provavelmente, neste caso, é usado pela Biblioteca JS do Facebook React.
Dê uma olhada: http://facebook.github.io/react/
fonte
Atributo de dados personalizados em HTML5
Gostaria de citar o comentário de Ian em minha resposta:
reactid
é apenas um sufixo, você pode ter qualquer nome aqui, por exemplo:data-Ayman
.Se você quiser encontrar a diferença, verifique os erros nesta resposta do SO e comente .
fonte
atributos de dados são comumente usados para uma variedade de interações. Normalmente via javascript. Eles não afetam nada em relação ao comportamento do site e são um método conveniente para transmitir dados para qualquer finalidade necessária. Aqui está um artigo que pode esclarecer as coisas:
http://ejohn.org/blog/html-5-data-attributes/
Você pode criar um atributo de dados prefixando
data-
qualquer string segura de atributo padrão (alfanumérico sem espaços ou caracteres especiais). Por exemplo,data-id
ou neste casodata-reactid
fonte
Esse é o atributo de dados HTML. Veja isso para obter mais detalhes: http://html5doctor.com/html5-custom-data-attributes/
Basicamente, é apenas um contêiner de seus dados personalizados e, ao mesmo tempo, torna o HTML válido. É
data-
mais algum identificador único.fonte