JavaScript бібліотеки, які вам сподобаються. Underscore
Першу частину читайте тут:
JavaScript бібліотеки, які вам сподобаються. Backbone
Поява різноманітних бібліотек JavaScript має лавиноподібний характер, що зумовлено тим, що ключову роль у веб-розробці стала відігравати простота створення динамічних елементів користувацького інтерфейсу.
І кожен, кому доводилося писати об’ємні куски осмисленого кода на JavaScript, рано чи пізно розумів, що йому багато чого не вистачає в цій мові або просто незручні деякі конструкції, пропоновані розробниками. Саме для підвищення зручності і застосовують бібліотеки.
Наступна бібліотека, яка не залишить жодного розробника байдужим є Underscore – бібліотека яка написана тими ж людьми, що і Backbone і яка суттєво покращує життя JavaScript-програміста.
Underscore – набір сервісів
Головною метою бібліотеки Underscore є підтримка функціонального програмування у JavaScript. По суті, Underscore.js або _.js — це набір функцій-утиліт, до яких звикли шанувальники функціонального програмування. При її написанні враховувалася взаємодія з фреймворком jQuery.
Underscore.js надає більше 60 функцій, одна частина яких розрахована на роботу з колекціями, масивами, функціями та об’єктами, а інша, спеціальні допоміжні функції та утиліти для JavaScript для роботи з шаблонами і створення унікальних ідентифікаторів. Насправді Underscore заповнює багато пробілів мови JavaScript і полегшує роботу з даними, функціями і об’єктами.
Бібліотека Underscore є дуже маленькою, всього 3 кБ, коли мінімізована і стиснута, що дозволяє їй легко поєднуватися з такими JavaScript бібліотеками, як jQuery і Backbone.
Ось декілька функцій, які пропонує Underscore:
- Функції для роботи з колекціями. Вони включають функцію map( ), яка керує кожним значенням у списку через функцію, reduce( ) – функція, яку використовують для скорочення списку до одного простого значення, select( ) для пошуку всіх значень списку, які відповідають певному критерію, і sortBy( ) і groupBy( ) для сортування і групування списків довільним чином.
- Функції для роботи з масивами: first( ) і last( ) дозволяє повертати елементи масиву, compact( ) вилучає всі пусті елементи з масиву, flatten( ) «вирівнює» масив, тобто ліквідовує всі рівні вкладеності і without( ) дозволяє скорочувати набір значень в масиві. Іншими корисними функціями для роботи з масивами є union( ) і intersection( ) для об’єднання масивів, і zip( ) для об’єднання даних, які розбиті на окремі масиви.
- Робота з функціями. Ця група включає функції bind( ) і bindAll( ) для організації зв’язку з об’єктами. Memoize( ) для хешування результатів функції (корисно для прискорення повільних процесів), і багато інших корисних способів виклику функцій за певних умов: defer( ) – відкладає виклик функції до очищення поточного стеку, throttle( ) – повертає версію функції, яка при повторних викликах виконається один раз у заданий проміжок часу, debounce( ) – для визначення часу виконання функції, once( ) – функція може викликатися лише одноразово, after( ) – задання умови запуску функції.
- Функції для роботи з об’єктами. Underscore пропонує декілька функцій, які полегшують роботу з об’єктами, а саме keys( ), values( ) і functions( ) для повернення компонент об’єкту, extend( ) для організації наслідування об’єкту, clone( ) для копіювання об’єктів і tap( ) для вставки довільних операцій з проміжними результатами в межах ланцюга викликів. Пропонується також ряд корисних функцій для організації тестування: isEqual( ), isEmpty( ), isElement( ), isArray( ) і інші.
- Функції-утиліти. Остання група функцій містить неоднорідні функції, які забезпечують наступне: times( ) – виконання функції задане число разів, uniqueId( ) – для генерації GUID-ідентифікаторів. Досить корисною для розробника є функція template( ), яка компілює JavaScript шаблони в функції, які можуть бути викликані для рендерингу цього шаблону. Тоді можна застосувати шаблон, викликаючи повернуту функцію, передаючи список параметрів для використання в шаблоні.
Якщо ви знайомі з фреймворком Prototype, то ви без сумніву впізнаєте багато функцій для роботи з масивами, переліками, функціями, об’єктами з Prototype-вських модулів. Якщо ви вже використовуєте Prototype, то користі від Underscore буде небагато, але вона ідеально підходить для розширення інших бібліотек, таких як JQuery. На відміну від Prototype і Sugar, Underscore не розширює вбудовані об’єкти JavaScript, воліючи замість цього створювати окремий набір функцій під (under) конкретний об’єкт (звідси і назва бібліотеки).
Ви можете викликати функції бібліотеки Underscore двома різними способами. Наприклад,
_.map( myArray, myFunction );
або
_( myArray ).map( myFunction );
Другий підхід дозволяє об’єднувати методи в ланцюжок, що допоможе написати короткий, елегантний код.
В документації по Underscore добре роз’яснено роботу бібліотеки і перелічено всі її функції з поясненнями і прикладами.
|
|