Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

M1#A14 #124

Closed
rrgomide opened this issue May 12, 2018 · 4 comments
Closed

M1#A14 #124

rrgomide opened this issue May 12, 2018 · 4 comments
Labels

Comments

@rrgomide
Copy link

Primeiramente, parabens pelo curso! Muito bem feito e explicado!

Minha dúvida é sobre as keys. Há alguma recomendação da equipe do React para o tipo de dados da key, ou seja, a performance do diff do VirtualDOM melhora se definirmos numbers (índice do array) ao invés de strings, por exemplo?

@fdaciuk

@fdaciuk
Copy link
Member

fdaciuk commented May 14, 2018

Oi @rrgomide! Strings seriam sempre o melhor tipo de dados para esse caso, prefira sempre elas =)
Índices de arrays você só deve usar em casos onde o seu array não terá mudanças (elementos mudando de posição, ou novos sendo adicionados, ou ainda algum item sendo removido).

Para todos os outros casos, prefira sempre strings =)

@victorferreira
Copy link

victorferreira commented Jun 2, 2018

@fdaciuk, e qual seria a alternativa quando temos um array de strings como do exemplo e o array é alterado? Existe alguma outra alternativa de key que não seja o array[index] nesse caso?

P.S.: Random IDs não parecem ser a solução também.

@fdaciuk
Copy link
Member

fdaciuk commented Jun 4, 2018

Oi @victorferreira! Se o array contiver valores que poderão ser alterados no futuro (adicionar, remover, mudar posição), o ideal é sempre, antes de usar esse array no render, transformar cada elemento do array em um objeto com um ID próprio. ID's randômicos acabam sendo piores que usar o índice do array mesmo =)

@fdaciuk
Copy link
Member

fdaciuk commented Aug 3, 2018

Oi @rrgomide e @victorferreira! Vou fechar a issue, mas se ainda ficou alguma dúvida, eu reabro, ok? =)

@fdaciuk fdaciuk closed this as completed Aug 3, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants