“Um rapazinho segurando um livro com uma expressão surpresa sobre his face” por Ben White on Unsplash
Vincent D'amour
>

Vincent D’amour

Follow

>

2 de setembro, 2016 – 4 min leia-se

O que é Lodash?

Lodash é um superconjunto de Underscore. O que é o Underscore? Underscore é ” uma bagunça inteira de úteis ajudantes de programação funcional sem estender nenhum objeto embutido”. Em resumo, Lodash é uma biblioteca de helpers JS para arrays, strings e objetos. A documentação está aqui: https://lodash.com/docs

Porquê usar o Lodash?

Vai ajudá-lo a lidar com todos os tipos de objectos e vai poupar-lhe tempo ao não codificar funções genéricas. Seu código também será mais limpo com menos linhas e funcionará em todos os navegadores. Se você não está usando-o atualmente, você deve pensar seriamente sobre isso.

1. _.assign

_.assign é o equivalente do operador de propagação do ES6. É bastante fácil de entender, ele atribui propriedades de um ou muitos objetos a um objeto fonte.

2. _.times

_.times recebe como argumentos o número de iterações e uma função para executar n vezes e retorna um array dos resultados. Muito útil ao criar dados de teste dinâmico.

3. _.debounce

_.debounce irá invocar uma função após um certo tempo desde a última vez que foi invocada.

Neste exemplo, a função validateEmail será invocada após 500ms para que a mensagem de erro não seja exibida instantaneamente. O temporizador de 500ms será reinicializado em cada tecla. Desta forma, o usuário não verá uma mensagem de erro até que pare de digitar.

4. _.find

Em vez de iterar através de um array com um loop para encontrar um objeto específico, nós podemos simplesmente usar _.find. Isso é bom, mas esta não é a única coisa que você pode fazer com _.find. Você também pode encontrar um objeto usando múltiplas propriedades com uma única linha de código. Dê uma olhada!

5. _.get e ._set

Para este vou enganar um pouco, apresentando 2 funções que fazem quase a mesma coisa. _.get irá retornar um valor de propriedade de um objeto e _.set irá, bem você adivinhou, definir uma propriedade com um valor. Nada de especial exceto que você pode acessar uma propriedade com seu path.
Vejamos um exemplo.

Ao usar _.set, se o path não existir, ele será criado. Não é mais possível definir o erro “Não é possível definir os ‘itens’ da propriedade ‘itens’ do indefinido”. Com _.get, se o caminho não existir, ele retornará indefinido ao invés de um erro. Você também pode especificar um valor padrão (terceiro argumento) se o caminho resolver para indefinido.

6. _.deburr

Este é bem simples. Ele remove todas as “combinações de marcas diacríticas”, então “é” torna-se “e”.

É um bom hábito deburrar texto para uma função de busca quando há internacionalização e localização.

7. _.keyBy

_.keyBy é um dos meus favoritos. Ele ajuda muito quando se tenta obter um objeto com uma propriedade específica. Digamos que temos 100 posts no blog e queremos receber o post com Id “34abc”. Como podemos conseguir isso? Vamos ver!

Ainda que um servidor devolva uma coleção de objetos como um array, esta função pode ajudar a organizá-lo. O segundo argumento também pode ser uma função.

8. _.reduce

_.reduce é um pouco como uma função de filtro. A única diferença é que você pode escolher a forma do objeto retornado. Se você não entende o que estou tentando dizer, é normal, há um exemplo por este motivo.

Ouch! Este é um exemplo difícil. Então, basicamente, retornamos um novo objeto com usuários agrupados por sua idade e apenas para usuários entre 18 e 59 anos. Esta função de ajuda é uma das mais usadas do Lodash. Também faz parte do ES6. Eu também quero apontar 2 erros comuns, não se esqueça de retornar o resultado no final da função e não se esqueça de especificar o valor padrão para o resultado como terceiro argumento (aqui {}).

9. _.cloneDeep

Após o mais difícil, o mais fácil. _.cloneDeep irá clonar um objecto. Não brinca! O novo objeto também terá um novo endereço na memória para que você não esmague uma propriedade do objeto original.

10 _. sortedUniq

Com este, todos os valores duplicados não serão devolvidos. Este é normalmente usado por razões de performance, porque é especificamente para os arrays ordenados.

Este só é útil se você lida com grandes arrays. Se você quer melhor performance você deve ordenar seu array e usar funções que funcionam melhor com arrays ordenados. Existem várias outras funções como esta com o Lodash. Você pode dar uma olhada em _.sortedIndex, _.sortedIndexBy, _.sortedIndexOf, _.sortedLastIndex, _.sortedLastIndexBy, _.sortedLastIndexOf, _.sortedUniq, _.sortedUniqBy.

Conclusion

Lodash fornece uma tonelada de funções de ajuda para ajudá-lo a poupar tempo. A biblioteca é muito leve (69 KB), eficiente, popular e adorada (mais de 18.000 iniciados no Github). É actualizada com muita frequência e da última vez que olhei para a página do Github deles, havia 0 edição (página Github). Se você não está usando atualmente é muito fácil de incorporar em um projeto existente. Se você está começando um novo projeto em breve, você deve realmente pensar em usá-lo. Se você está aqui porque você não está agora se você deve usá-lo ou não … bem, sim, você deve. Vou concluir com uma resposta dada pelo autor em Stackoverflow:

Criei o Lo-Dash para fornecer um suporte mais consistente à iteração entre ambientes para arrays, strings, objetos, e arguments objetos1. Desde então ele se tornou um super conjunto de Underscore, fornecendo comportamento API mais consistente, mais recursos (como suporte AMD, deep clone e deep merge), documentação mais completa e testes unitários (testes que rodam em Node, Ringo, Rhino, Narwhal, PhantomJS e navegadores), melhor desempenho geral e otimizações para grandes arrays/iteração de objetos, e mais flexibilidade com construções personalizadas e utilitários de pré-compilação de modelos.

Deixe uma resposta

O seu endereço de email não será publicado.