„Un băiețel care ține în mână o carte cu o expresie de surprindere pe his face” de Ben White pe Unsplash
Vincent D'amour
Vincent D’amour

Follow

Sep 2, 2016 – 4 min citește

Ce este Lodash?

Lodash este un superset al Underscore. Ce este Underscore? Underscore este ” o întreagă mizerie de ajutoare utile pentru programarea funcțională fără a extinde niciun obiect încorporat”. Pe scurt, Lodash este o bibliotecă de ajutor JS pentru array-uri, șiruri de caractere și obiecte. Documentația este aici: https://lodash.com/docs

De ce să folosiți Lodash?

Vă va ajuta să vă ocupați de toate tipurile de obiecte și veți economisi timp prin faptul că nu veți codifica funcții generice. De asemenea, codul dvs. va fi mai curat, cu mai puține linii și va funcționa pe toate browserele. Dacă nu îl folosiți în prezent, ar trebui să vă gândiți serios la asta.

1. _.assign

_.assign este echivalentul operatorului spread din ES6. Este destul de ușor de înțeles, atribuie proprietățile unuia sau mai multor obiecte unui obiect sursă.

2. _.times

_.times primește ca argumente numărul de iterații și o funcție de executat de n ori și returnează un array cu rezultatele. Foarte util atunci când se creează date de test dinamice.

3. _.debounce

_.debounce va invoca o funcție după un anumit interval de timp de la ultima oară când a fost invocată.

În acest exemplu, funcția validateEmail va fi invocată după 500ms, astfel încât mesajul de eroare să nu se afișeze instantaneu. Cronometrul de 500ms se va reseta la fiecare apăsare de tastă. În acest fel, utilizatorul nu va vedea un mesaj de eroare până când nu se oprește din tastatură.

4. _.find

În loc să iterăm printr-o matrice cu o buclă pentru a găsi un anumit obiect, putem folosi pur și simplu _.find. Este frumos, dar acesta nu este singurul lucru pe care îl puteți face cu _.find. De asemenea, puteți găsi un obiect folosind mai multe proprietăți cu o singură linie de cod. Aruncați o privire!

5. _.get și ._set

Pentru aceasta voi trișa un pic prezentând 2 funcții care fac aproape același lucru. _.get va returna valoarea unei proprietăți de la un obiect, iar _.set va, ei bine, ați ghicit, va seta o proprietate cu o valoare. Nimic special, cu excepția faptului că puteți accesa o proprietate cu calea sa.
Să vedem un exemplu.

Când folosiți _.set, dacă calea nu există, ea va fi creată. Nu mai apare eroarea „Cannot set property ‘items’ of undefined”. Cu _.get, în cazul în care calea nu există, se va returna undefined în loc de o eroare. De asemenea, puteți specifica o valoare implicită (al treilea argument) dacă calea se rezolvă ca fiind nedefinită.

6. _.deburr

Aceasta este destul de simplă. Îndepărtează toate „semnele diacritice de combinare”, astfel încât „é” devine „e”.

Este un bun obicei de a deburra textul pentru o funcție de căutare atunci când există internaționalizare și localizare.

7. _.keyBy

_.keyBy este unul dintre preferatele mele. Ajută foarte mult atunci când încercăm să obținem un obiect cu o anumită proprietate. Să spunem că avem 100 de articole de blog și vrem să obținem articolul cu Id „34abc”. Cum putem realiza acest lucru? Să vedem!

De fiecare dată când un server returnează o colecție de obiecte sub forma unui array, această funcție vă poate ajuta să o organizați. Al doilea argument poate fi, de asemenea, o funcție.

8. _.reduce

_.reduce este un pic ca o funcție de filtrare. Singura diferență este că puteți alege forma obiectului returnat. Dacă nu înțelegeți ce încerc să spun, este normal, există un exemplu din acest motiv.

Ouch! Aceasta este o problemă dificilă. Deci, practic, returnăm un nou obiect cu utilizatorii grupați în funcție de vârstă și numai pentru utilizatorii cu vârsta cuprinsă între 18 și 59 de ani. Această funcție de ajutor este una dintre cele mai utilizate din Lodash. De asemenea, face parte din ES6. De asemenea, vreau să subliniez 2 erori comune, nu uitați să returnați rezultatul la sfârșitul funcției și nu uitați să specificați valoarea implicită pentru rezultat ca al treilea argument (aici {}).

9. _.cloneDeep

După cea mai grea, cea mai ușoară. _.cloneDeep va clona un obiect. Fără glumă! Noul obiect va avea, de asemenea, o nouă adresă în memorie, astfel încât nu veți zdrobi o proprietate din obiectul original.

10 _. sortedUniq

Cu acesta, toate valorile duplicate nu vor fi returnate. Aceasta este folosită de obicei din motive de performanță, deoarece este specifică pentru array-urile sortate.

Aceasta este utilă numai dacă aveți de-a face cu array-uri mari. Dacă doriți o performanță mai bună, ar trebui să vă sortați array-ul și să folosiți funcții care funcționează mai bine cu array-uri sortate. Există mai multe alte funcții ca aceasta cu Lodash. Puteți arunca o privire la _.sortedIndex, _.sortedIndexBy, _.sortedIndexOf, _.sortedLastIndex, _.sortedLastIndexBy, _.sortedLastIndexOf, _.sortedUniq, _.sortedUniqBy.

Concluzie

Lodash oferă o tonă de funcții ajutătoare pentru a vă ajuta să economisiți timp. Biblioteca este foarte ușoară (69 KB), eficientă, populară și îndrăgită (mai mult de 18.000 de starturi pe Github). Este actualizată foarte des și ultima dată când m-am uitat pe pagina lor Github, exista 0 probleme (pagina Github). Dacă nu îl folosiți în prezent, este foarte ușor de încorporat într-un proiect existent. Dacă începeți în curând un proiect nou, ar trebui să vă gândiți cu adevărat să îl folosiți. Dacă sunteți aici pentru că nu știți dacă ar trebui să îl folosiți sau nu … ei bine, da, ar trebui. Voi încheia cu un răspuns dat de autor pe Stackoverflow:

Am creat Lo-Dash pentru a oferi un suport de iterație mai consistent între medii pentru array-uri, șiruri de caractere, obiecte și arguments obiecte1. De atunci a devenit un superset al Underscore, oferind un comportament mai consistent al API-ului, mai multe caracteristici (cum ar fi suportul AMD, deep clone și deep merge), o documentație și teste unitare mai amănunțite (teste care rulează în Node, Ringo, Rhino, Narwhal, PhantomJS și browsere), o performanță generală mai bună și optimizări pentru iterația de matrici mari/obiecte și mai multă flexibilitate cu compilări personalizate și utilități de precompilare a șabloanelor.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.