Co to jest Knockout.js?
Knockout to świetna biblioteka JavascripPomaga stworzyć interfejs użytkownika bogaty w tekst z dobrymi możliwościami wyświetlania i edycji, wykorzystując jedynie przejrzysty i przejrzysty model danych. Za każdym razem, gdy lokalna zawartość interfejsu wymaga automatycznej aktualizacji (np. w zależności od zmian w zachowaniu użytkownika lub zewnętrznych źródeł danych), KO można łatwo wdrożyć i bardzo łatwo utrzymać.
Ważne cechy KO:
Eleganckie śledzenie zależności – Za każdym razem, gdy model źródła danych się zmienia, może automatycznie aktualizować określoną zawartość interfejsu użytkownika. Deklaratywne wiązanie – Wiąże interfejs użytkownika z modelem źródłowym w prosty i prosty sposób, a do budowania złożonego dynamicznego interfejsu możesz użyć dowolnego szablonu struktury zagnieżdżonej. Dobra skalowalność – niestandardowe zachowanie można zaimplementować za pomocą kilku prostych linii kodu do powiązania jako nowej deklaracji.
Inne zalety:
Czysta biblioteka Javascrip{filtering}t – kompatybilna z każdą technologią serwerową i kliencką. Można go dobrze zastosować do istniejących aplikacji – bez konieczności zmian w głównej architekturze programu. Prostota – tylko 13K po kompresji Gzip. Kompatybilny z każdą główną przeglądarką (IE 6+, Firefox 2+, Chrome, Safari i inne) Kompleksowy zestaw specyfikacji (z programem opartym na zachowaniach) – oznacza to, że można je łatwo zweryfikować w nowych przeglądarkach lub platformach. Programiści zaznajomieni z Ruby on Rails, Asp.net MVC lub innymi technologiami MVC mogą uznać ją za formę MVC w czasie rzeczywistym z składnią deklaratywną. Innymi słowy, możesz myśleć o KO jako o sposobie na stworzenie interfejsu użytkownika UI poprzez edycję danych JSON... Cokolwiek to dla ciebie zrobi.
Jak go używać?
Najszybszym i najfajniejszym sposobem na rozpoczęcie jest interaktywna nauka, a gdy opanujesz najprostsze techniki i poznasz każdą instancję online, będziesz gotowy do pracy nad swoimi projektami.
Czy KO i Jquery (prototyp itp.) konkurują ze sobą, czy można je używać razem?
Wszyscy kochają Jquery! W przeszłości musieliśmy znosić różne niespójne metody manipulacji obiektami API DOM, a pojawienie się Jquery stanowi świetną alternatywę dla nieporęcznych frameworków z przeszłości, czyniąc go elastycznym i łatwym w użyciu. Jquery jest doskonały i łatwy w użyciu do manipulacji elementami strony internetowej oraz obsługi zdarzeń, podczas gdy KO rozwiązuje inny problem.
Jeśli interfejs UI jest nieco bardziej złożony i zawiera podobne zachowania, jeśli używasz tylko Jquery, interfejs będzie bardziej złożony i trudniejszy, niż myślisz, a utrzymanie będzie dość kosztowne. Weźmy przykład wyświetlania listy elementów w tabeli, podania liczby list w tabeli i włączania przycisku "Dodaj", gdy liczba list przedmiotów jest mniejsza niż 5, w przeciwnym razie wyłączona. Jquery nie ma podstawowej koncepcji modelu danych, więc jeśli chcesz uzyskać liczbę list projektów, musisz wywnioskować z liczb tabel/tr/div. Jeśli musisz wyświetlić ilość danych w niektórych SPAN-ach, pamiętaj również o aktualizacji tekstu SPAN-u przy dodawaniu nowych danych. Oczywiście musisz też pamiętać, że gdy całkowita liczba >=5, musisz wyłączyć przycisk Dodaj. Następnie, jeśli chcesz zaimplementować funkcję Delete, musisz wskazać, który element DOM trzeba zmienić po kliknięciu.
Czym różni się robienie tego w Knockout?
Po KO wszystko staje się bardzo proste. Pozwala to łatwo skalować złożoność projektu bez obaw o wynikające z tego niespójności danych. Po prostu konwertuje twoje dane na tablicę Javascrip{filter}t, a następnie używa foreach do powiązania tablicy danych z tabelą lub zestawem divów na stronie. Za każdym razem, gdy zmienia się tablica danych, interfejs automatycznie reaguje na zmianę (nie musisz wskazywać, jak wstawić nowy wiersz ani gdzie), a reszta to synchronizacja danych w interfejsie. Na przykład możesz zadeklarować następujący SPAN, aby wyświetlić ilość danych:
To wszystko! Nie musisz pisać kodu, żeby go zaktualizować, jego aktualizacja zależy od zmian w tablicy myItems. Podobnie, włączanie i wyłączanie przycisku Dodaj zależy od długości tablicy myItems, w następujący sposób:
Następnie, jeśli musisz zaimplementować funkcję "Delete", nie musisz określać, jak manipulować elementami UI, wystarczy zmodyfikować model danych.
Podsumowanie: KO nie zamierza konkurować z jQuery i innymi podobnymi frameworkami manipulacji DOM. KO zapewnia zaawansowany sposób korelacji modelu danych z interfejsem użytkownika użytkownika.KO nie zależy od samego jQuery, ale możesz używać jQuery razem, Żywe i delikatne zmiany interfejsu wymagają użycia jQuery.
Zasoby:
http://www.aizhengli.com/knockoutjs/50/knockout.html
http://knockoutjs.com/
|