Świat poza jQuery. Biblioteki: AngularJS, KnockoutJS, BackboneJS - ebook
Świat poza jQuery. Biblioteki: AngularJS, KnockoutJS, BackboneJS - ebook
jQuery jest dominującą technologią w budowaniu nowoczesnych portali internetowych. W książce przedstawiono alternatywne biblioteki skryptowe, powszechnie używane w nowych projektach, których znajomość jest coraz częściej poszukiwana na rynku pracy. Publikacja jest przeznaczona dla wszystkich osób, które chcą rozwijać swoje umiejętności związane z działaniami webowych. Zaletą książki jest aktualność i praktyczne podejście – zagadnienia omówiono na przykładzie projektów przygotowanych specjalnie na potrzeby książki i poprowadzonych od początku do końca, tzn. od pomysłu aż do gotowego projektu.
Z książki dowiesz się
– jakie masz możliwości rozwoju, gdy czujesz, że jQuery to za mało,
– jakie biblioteki skryptowe są teraz popularne,
– jak poprawić tworzony do tej pory kod, – jak tworzyć strony typu Single Page App.
Powinieneś znać
– HTML (najlepiej HTML5),
– Java Script i jQuery.
Spis treści
Wprowadzenie
Underscore.js
Czym jest Underscore.js?
Dlaczego warto poznać Underscore.js?
Dlaczego tutaj o nim mówię?
Instalacja Underscore.js
Przykłady użycia
_.each(list, iterator)
_.map(list, iterator)
_.reduce(list, iterator, memo)
_.reduceRight(list, iterator, memo)
_.find(list, iterator)
_.filter(list, iterator)
_.where(list, properties
_.findWhere(list, properties)
_.reduce(list, iterator)
_.every(list, iterator)
_.some(list, iterator)
_.contains(list, value)
_.invoke(list, methodName)
_.pluck(list, propertyName)
_.max(list, iterator) i _.min(list, iterator)
_.sortBy(list, iterator)
_.groupBy(list, iterator)
_.countBy(list, iterator)
_.shuffle(list)
_.size(list)
_.first(array) i _.take(array, n)
_.initial(array, n), _.last(array, n) i _.rest(array, index)
_.compact(array)
_.flatten(array, shallow)
_.without(array, values)
_.union(arrays)
_.intersection(arrays)
_.difference(array, array)
_object(list, values)
_.indexOf(array, value) i _.lastIndexOf(array, value)
_.sortedIndex(list, value)
_.range(start, stop, step)
_.bind(function, object, arguments)
_.partial(function, arguments)
_.memoize(function)
_.delay(function, wait, arguments)
_.defer(function, arguments)
_.throttle(function, wait)
_.debounce(function, wait)
_.once(function) i _.after(counter, function)
_.wrap(function, wrapper)
_.compose(functions)
_.chain(object) i _(object).value()
_.tap(object, interceptor)
_.keys(object), _.values(object), _.pairs(object) oraz _.invert(object)
_.functions(object)
_.extend(destination, sources), _.pick(object, keys) oraz _.omit(object, keys)
_.clone(object)
_.has(object, key)
_.isEqual(object1, object2)
_.is(na sto sposobów)
_.noConflict()
_.times(n, iterator) i _.random(min, max)
_.mixin(object)
_.unique(prefix)
_.escape(text) i _.unescape(text)
_.result(object, property)
_.template()
Podsumowanie
Backbone.js
Na początek o edytorze tekstowym słów kilka. Sublime Text
Czym jest Backbone.js
Coś za coś
Dlaczego warto poznać Backbone.js?
Niezbędne minimum.
Bierzemy się do pracy
Modele – podstawy
Modele – zdarzenia
Modele – walidacja
Widoki – podstawy teoretyczne
Widoki – podstawy praktyczne
Routes (wreszcie napiszemy coś większego)
Routes – praktyczny przykład działania
Chwila oddechu
Część serwerowa
Pierwsza komunikacja z serwerem
Pobieranie danych z serwera
Podsumowanie
AngularJS
Czym jest AngularJS?
Dlaczego warto używać AngularJS?
Jaki mamy plan?
Zasiejmy ziarno
Uruchomienie aplikacji
Małe porządki
Kontrolery
Zdarzenia
Dyrektywy – czyli takie trochę inne argumenty
Bindowanie
Cloak
nonBindable
Wyrażenia
Filtry
Tworzenia własnego filtru
Wiązanie obustronne
Walidacja
Serwisy
Pierwszy własny serwis
Serwisy wbudowane
Lokalizacja
Timeout
Ruting
Dyrektywy
Tworzymy dyrektywę
Dyrektywa korzystająca z danych zewnętrznych
Dyrektywy reagujące na zmiany wartości
Podsumowanie
Knockout.js
Od czego zacząć?
Środowisko.
Podstawy
Zmienne obserwowane (observables)
Wiązania
toJSON
Podsumowanie
Podsumowanie, podziękowanie i kilka słów ode mnie
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-01-18043-0 |
Rozmiar pliku: | 12 MB |
FRAGMENT KSIĄŻKI
Wprowadzenie
Underscore.js
Czym jest Underscore.js?
Dlaczego warto poznać Underscore.js?
Dlaczego tutaj o nim mówię?
Instalacja Underscore.js
Przykłady użycia
_.each(list, iterator)
_.map(list, iterator)
_.reduce(list, iterator, memo)
_.reduceRight(list, iterator, memo)
_.find(list, iterator)
_.filter(list, iterator)
_.where(list, properties)
_.findWhere(list, properties)
_.reduce(list, iterator)
_.every(list, iterator)
_.some (list, iterator)
_.contains(list, value)
_.invoke(list, methodName)
_.pluck(list, propertyName)
_.max(list, iterator) i _.min(list, iterator)
_.sortBy(list, iterator)
_.groupBy(list, iterator)
_.countBy(list, iterator)
_.shuffle(list)
_.size(list)
_.first(array) i _.take(array, n)
_.initial(array, n), _.last(array, n)oraz _.rest(array, index)
_.compact(array)
_.flatten(array, shallow)
_.without(array, values)
_.union(arrays)
_.intersection(arrays)
_.difference(array, array)
_object(list, values)
_.indexOf(array, value) i _.lastIndexOf(array, value)
_.sortedIndex(list, value)
_.range(start, stop, step)
_.bind(function, object, arguments)
_.partial(function, arguments)
_.memoize(function)
_.delay(function, wait, arguments)
_.defer(function, arguments)
_.throttle(function, wait)
_.debounce(function, wait)
_.once(function) i _.after(counter, function)
_.wrap(function, wrapper)
_.compose(functions)
_.chain(object) i _(object).value()
_.tap(object, interceptor)
_.keys(object), _.values(object), _.pairs(object) oraz _.invert(object)
_.functions(object)
_.extend(destination, sources), _.pick(object, keys) oraz _.omit(object, keys)
_.clone(object)
_.has(object, key)
_.isEqual(object1, object2)
_.is(na sto sposobów)
_.noConflict()
_.times(n, iterator) i _.random(min, max)
_.mixin(object)
_.unique(prefix)
_.escape(text) i _.unescape(text)
_.result(object, property)
_.template()
Podsumowanie
Backbone.js
AngularJS
Knockout.js
Podsumowanie, podziękowanie i kilka słów ode mnieWprowadzenie
Zanim przejdę do szczegółów i powiem, co znajdziemy w książce, chciałbym wyjaśnić parę kwestii. Po pierwsze i najważniejsze – nie jest to dokumentacja przedstawianych rozwiązań ani kolejna książka zawierająca wszystkie istniejące informacje na ich temat, omawiająca krok po kroku każdy ich aspekt. Osobiście nigdy tego typu książek nie lubiłem i na pewno nie zamierzałem napisać niczego takiego. Zamiast tego starałem się napisać książkę możliwie przystępnym językiem. Chciałbym, aby Czytelnik odniósł wrażenie, że siedzimy obok siebie, pracując nad jakimś projektem, i rozmawiamy, w jaki sposób go tworzyć. Poznajemy różne technologie i narzędzia, a na samym końcu oczywiście staramy się zaimplementować coś, co będzie stanowiło całość. Dlatego właśnie, jeżeli poszukujecie kolejnego tomu podobnego do dziesiątek książek informatycznych dostępnych na rynku, możecie śmiało tę książkę odłożyć i wrócić do tych dziesiątek. Jeżeli natomiast jesteście już znużeni tym, że w gruncie rzeczy większość książek największych wydawnictw jest praktycznie taka sama, to zapraszam do lektury.
Dla kogo jest ta ta książka? Odpowiedź na to pytanie powinna pojawić się na początku każdego typu publikacji. Super chwytem marketingowym byłoby napisanie czegoś w stylu: „To książka przeznaczona dla wszystkich pasjonatów technologii internetowych, którzy chcą pogłębić swoją wiedzę”. Świetne hasło reklamowe, prawda? Ale nie o takie populistyczne ogólniki mi chodzi. Dlatego właśnie, pisząc o osobach, które chciałbym, aby ją przeczytały, postaram się być maksymalnie szczery. Nie jest ona z pewnością przeznaczona dla osób, które dopiero zaczynają tworzyć rozwiązania oparte na języku JavaScript, ponieważ, aby prześledzić podane w niej przykłady, trzeba znać podstawy programowania w tym języku. Nie mówię oczywiście, żeby jej nie kupować. Kupcie. Odłóżcie na półkę i wróćcie do niej, gdy będziecie gotowi. A tak poważnie, to jest ona przeznaczona dla osób, które poznały już dość dobrze podstawy języka JavaScript i oczywiście, co za tym idzie, także jQuery. Tak wiem, że to nie jest to samo i że z punktu widzenia wielu osób strasznie upraszczam w tym momencie. Odpowiedzcie sobie jednak na pytanie: Czy te dwie technologie nie są teraz traktowane przez większość osób jak jedna nierozłączna całość? W tym właśnie momencie wyłania się opis grupy osób, do których chciałem skierować tę książkę. Mianowicie, chodzi mi o osoby, które mają już powoli dość pisania aplikacji, wykorzystując tylko te dwa rozwiązania, i chciałyby poszerzyć swoje umiejętności o technologie i narzędzia pokrewne. Tak jak wspomniałem, większości rozwiązań nie omówię od A do Z, bo powstałby kolejny podręcznik użytkownika, w żargonie zwany manualem. Opiszę je na tyle dokładnie, aby można było się w nich dość swobodnie poruszać. W większości przypadków będę je demonstrował na przykładzie tworzonego projektu. Uważam, że jest to bardzo ważne, gdyż najtrudniej jest zacząć. A gdy komuś przyjdzie już tworzyć profesjonalne rozwiązania biznesowe, to i tak nie sięga do książki, lecz prosi o pomoc wujka Google.Podsumowanie, podziękowanie i kilka słów ode mnie
Udało się nam dotrzeć do końca.
Książkę napisałem, aby pokazać możliwości, jakie programiści stron internetowych mają poza użyciem jQuery. Nie chcę oczywiście sugerować, że jQuery to zła technologia. Jest to naprawdę świetne rozwiązanie, z którego korzystam na co dzień i które bardzo ułatwia mi pracę. Po prostu dobrze jest mieć szerszy obraz i wiedzieć, że mamy różne możliwości.
Poznaliśmy trzy zupełnie inne rozwiązania. Zarówno pod względem modelu, na jakim są zbudowane, jak i pod względem używanej składni. Mam nadzieję, że któryś z nich was zainteresuje i będziecie pogłębiać swoją wiedzę, ponieważ w każdym z nich naprawdę omówiliśmy tylko podstawy, tak aby mieć obraz, co tam w ogóle się dzieje, i by móc zdecydować, czy nam się to podoba, czy nie.
Na koniec chciałbym bardzo podziękować osobom, które przeczytały tę książkę. Był to dla mnie debiut. Dlatego bardzo liczę na odzew z waszej strony – zarówno na gratulacje, jak i uwagi krytyczne, wskazujące, co mógłbym poprawić. Nawet na te krytyczne liczę bardziej. Bo zdecydowanie więcej uczymy się na błędach niż na sukcesach.
Bardzo się starałem, aby nie popełnić błędu, który obserwuje się notorycznie w wielu pozycjach technicznych. Mówię tu o prezentowaniu niedziałającego kodu. Dlatego właśnie absolutnie każdy przykład był przeze mnie uruchomiony, a dopiero potem zaprezentowany. Dlatego wszystko naprawdę powinno działać. Jeżeli jednak coś by nie szło, czy byłyby jakiekolwiek pytania, uwagi, wnioski czy cokolwiek innego, to można się do mnie odzywać na [email protected] lub @KarolRogowski.
Jeszcze raz dziękuję za poświęcony czas.