2. syysk, 2016 – 4 min read
Mikä on Lodash?
Lodash on Underscoren supersarja. Mikä on Underscore? Underscore on ” koko joukko hyödyllisiä funktionaalisen ohjelmoinnin apuvälineitä laajentamatta mitään sisäänrakennettuja objekteja”. Lyhyesti sanottuna Lodash on JS-apukirjasto matriiseille, merkkijonoille ja objekteille. Dokumentaatio on täällä: https://lodash.com/docs
Miksi käyttää Lodashia?
Se auttaa sinua käsittelemään kaikentyyppisiä objekteja ja säästät aikaa, kun et koodaa geneerisiä funktioita. Koodistasi tulee myös siistimpää vähemmillä riveillä ja se toimii kaikilla selaimilla. Jos et tällä hetkellä käytä sitä, sinun kannattaa vakavasti harkita sitä.
1. _.assign
_.assign on ES6:n spread-operaattorin vastine. Se on melko helppo ymmärtää, se osoittaa yhden tai useamman objektin ominaisuuksia lähdeobjektiin.
2. _.times
_.times vastaanottaa argumentteina iteraatioiden lukumäärän ja funktion, joka suoritetaan n kertaa, ja palauttaa tuloksista koostuvan joukon. Erittäin hyödyllinen luotaessa dynaamista testidataa.
3. _.debounce
_.debounce kutsuu funktiota tietyn ajan kuluttua siitä, kun sitä viimeksi kutsuttiin.
Tässä esimerkissä funktiota validateEmail kutsutaan 500 ms:n kuluttua, jotta virheilmoitus ei näkyisi heti. 500 ms:n ajastin nollautuu jokaisen näppäimen painalluksen yhteydessä. Näin käyttäjä ei näe virheilmoitusta ennen kuin hän lopettaa kirjoittamisen.
4. _.find
Silmukan avulla tapahtuvan matriisin iteroinnin sijasta tietyn objektin etsimiseen voidaan yksinkertaisesti käyttää _.find. Se on mukavaa, mutta tämä ei ole ainoa asia, jonka voit tehdä _.findillä. Voit myös etsiä objektin käyttämällä useita ominaisuuksia yhdellä koodirivillä. Katso!
5. _.get ja ._set
Tässä huijaan hieman esittelemällä 2 funktiota, jotka tekevät lähes saman asian. _.get palauttaa ominaisuuden arvon objektista ja _.set, no, arvasit sen, asettaa ominaisuudelle arvon. Ei mitään erikoista, paitsi että ominaisuutta voi käyttää sen polun avulla.
Katsotaanpa esimerkki.
Käytettäessä _.set, jos polkua ei ole olemassa, se luodaan. Ei enää ”Cannot set property ’items’ of undefined” -virhettä. Käyttämällä _.get, jos polkua ei ole olemassa, se palauttaa virheen sijasta undefined. Voit myös määrittää oletusarvon (kolmas argumentti), jos polun resoluutio on undefined.
6. _.deburr
Tämä on melko yksinkertainen. Se poistaa kaikki ”yhdistävät diakriittiset merkit”, joten ”é” muuttuu ”e:ksi”.
Se on hyvä tapa deburrata tekstiä hakutoimintoa varten, kun kyseessä on kansainvälistäminen ja lokalisointi.
7. _.keyBy
_.keyBy on yksi suosikeistani. Se auttaa paljon, kun yrittää saada objektin, jolla on tietty ominaisuus. Oletetaan, että meillä on 100 blogipostausta ja haluamme saada postauksen, jonka Id on ”34abc”. Miten voimme saavuttaa tämän? Katsotaanpa!
Kun palvelin palauttaa objektikokoelman matriisina, tämä funktio voi auttaa sinua järjestämään sen. Toinen argumentti voi olla myös funktio.
8. _.reduce
_.reduce on vähän kuin suodatinfunktio. Ainoa ero on, että voit valita palautettavan objektin muodon. Jos et ymmärrä, mitä yritän sanoa, se on normaalia, tästä syystä on esimerkki.
Ah! Tämä on kova juttu. Eli periaatteessa palautetaan uusi objekti, jossa käyttäjät on ryhmitelty iän mukaan ja vain 18-59-vuotiaille käyttäjille. Tämä apufunktio on yksi Lodashin käytetyimmistä. Se on myös osa ES6:ta. Haluan myös huomauttaa kahdesta yleisestä virheestä, älä unohda palauttaa tulosta funktion lopussa ja älä unohda määrittää tuloksen oletusarvoa kolmantena argumenttina (tässä {}).
9. _.cloneDeep
Vaikeimman jälkeen tulee helpoin. _.cloneDeep kloonaa objektin. Ei voi olla totta! Uudella objektilla on myös uusi osoite muistissa, joten et murskaa ominaisuutta alkuperäisestä objektista.
10 _. sortedUniq
Tämän avulla kaikkia päällekkäisiä arvoja ei palauteta. Tätä käytetään yleensä suorituskykysyistä, koska se on tarkoitettu nimenomaan lajitelluille matriiseille.
Tästä on hyötyä vain, jos käsittelet isoja matriiseja. Jos haluat parempaa suorituskykyä, kannattaa lajitella array ja käyttää funktioita, jotka toimivat paremmin lajiteltujen arrayjen kanssa. Lodashissa on useita muita tällaisia funktioita. Voit katsoa _.sortedIndex, _.sortedIndexBy, _.sortedIndexOf, _.sortedLastIndex, _.sortedLastIndexBy, _.sortedLastIndexOf, _.sortedUniq, _.sortedUniqBy.
Conclusion
Lodash tarjoaa valtavasti apufunktioita, joiden avulla voit säästää aikaa. Kirjasto on erittäin kevyt (69 KB), tehokas, suosittu ja rakastettu (yli 18 000 aloitusta Githubissa). Sitä päivitetään hyvin usein ja viimeksi kun katsoin heidän Github-sivulleen, siellä oli 0 ongelmaa (Github-sivu). Jos et tällä hetkellä käytä sitä, se on erittäin helppo sisällyttää olemassa olevaan projektiin. Jos olet aloittamassa uutta projektia lähiaikoina, sinun kannattaa todella harkita sen käyttöä. Jos olet täällä, koska et tiedä, pitäisikö sitä käyttää vai ei … no, kyllä pitäisi. Päätän kirjoittajan Stackoverflow’ssa antamaan vastaukseen:
Loin Lo-Dashin tarjotakseni johdonmukaisemman cross-environment iteration -tuen matriiseille, merkkijonoille, objekteille ja
arguments
objekteille1. Siitä on sittemmin tullut Underscoren supersarja, joka tarjoaa johdonmukaisemman API-käyttäytymisen, enemmän ominaisuuksia (kuten AMD-tuki, syvä kloonaus ja syvä yhdistäminen), perusteellisemman dokumentaation ja yksikkötestit (testit, jotka toimivat Nodessa, Ringossa, Rhinossa, Ninossa, Narwhalissa, PhantomJS:ssä ja selaimissa), paremman kokonaissuorituskyvyn ja optimoinnit suurille matriiseille/objektien iteroinnille sekä enemmän joustavuutta mukautetuilla kokoonpano- ja mallien esikompilointi- apuohjelmilla.