Kaj je Knockout.js?
Knockout je odlična Javascrip knjižnicaPomaga vam ustvariti besedilno bogat uporabniški vmesnik z dobrimi prikaznimi in urejevalnimi možnostmi, pri čemer uporabljate le jasen in čist osnovni podatkovni model. Kadarkoli je treba lokalno vsebino uporabniškega vmesnika samodejno posodobiti (npr. glede na spremembe v vedenju uporabnikov ali zunanje vire podatkov), je KO enostavno implementirati in zelo enostavno vzdrževati.
Pomembne značilnosti KO:
Elegantno sledenje odvisnosti – Kadarkoli se spremeni model podatkovnega vira, lahko samodejno posodobi določeno vsebino vašega uporabniškega vmesnika. Deklarativna vezavost – Poveže vaš uporabniški vmesnik z modelom izvora podatkov na preprost in preprost način, lahko pa uporabite katerokoli predlogo gnezdene strukture za izdelavo kompleksnega dinamičnega vmesnika. Dobra skalabilnost – prilagojeno vedenje je mogoče implementirati z nekaj preprostimi vrsticami kode za vezavo kot novo deklaracijo.
Druge prednosti:
Čista Javascrip{filtering}t knjižnica – združljiva z vsako strežniško in odjemalsko tehnologijo. Lahko se dobro uporabi na obstoječih aplikacijah – brez potrebe po spremembah glavne arhitekture programa. Preprostost – samo 13K po Gzip kompresiji. Združljiv z vsemi večjimi brskalniki (npr. 6+, Firefox 2+, Chrome, Safari in drugi) Celovit nabor specifikacij (z razvojem, ki temelji na vedenju) – to pomeni, da jih je mogoče enostavno preveriti v novih brskalnikih ali platformah. Razvijalci, ki poznajo Ruby on Rails, Asp.net MVC ali druge MVC tehnologije, lahko ugotovijo, da gre za MVC obliko v realnem času z deklarativno sintakso. Z drugimi besedami, KO si lahko predstavljate kot način za ustvarjanje uporabniškega vmesnika z urejanjem JSON podatkov... Karkoli ti to prinese.
Kako ga uporabljati?
Najhitrejši in najbolj zabaven način za začetek je interaktivno poučevanje, in ko obvladate najbolj osnovne tehnike ter se naučite vsakega spletnega primera, boste pripravljeni delati na svojih projektih.
Ali KO in Jquery (prototip itd.) tekmujeta med seboj ali ju je mogoče uporabljati skupaj?
Vsi obožujejo Jquery! V preteklosti smo morali prenašati različne nedosledne metode DOM API za manipulacijo objektov, pojav Jquery pa je odlična alternativa okornim okvirjem iz preteklosti, zaradi česar je prilagodljiv in enostaven za uporabo. Jquery je odličen in enostaven za uporabo za manipulacijo elementov spletne strani in upravljanje dogodkov, medtem ko KO rešuje drugačen problem.
Če je vaš uporabniški vmesnik nekoliko bolj kompleksen in vsebuje nekaj podobnega vedenja, če uporabljate samo Jquery, bo uporabniški vmesnik bolj kompleksen in zahteven, kot si mislite, ter precej drag za vzdrževanje. Vzemimo primer prikaza seznama elementov v tabeli, navajanja števila seznamov v tabeli in omogočanja gumba "Dodaj", ko je število seznamov elementov manjše od 5, sicer onemogočeno. Jquery nima osnovnega koncepta podatkovnega modela, zato če želite dobiti število seznamov projektov, morate sklepati iz številk tabel/tr/div. Če morate prikazati količino podatkov v določenih SPAN-ih, ne pozabite tudi posodobiti besedila SPAN-a, ko dodajate nove podatke. Seveda morate tudi vedeti, da ko je skupno število >= 5, morate onemogočiti gumb Dodaj. Če želite implementirati funkcijo Izbriši, morate poudariti, kateri element DOM je treba spremeniti po kliku.
Kako je drugače, če to počneš z Knockoutom?
Z nokavtom postane vse zelo preprosto. Omogoča vam enostavno prilagajanje kompleksnosti vašega projekta brez skrbi glede neskladnosti podatkov. Preprosto pretvori vaše podatke v polje Javascrip{filter}t, nato pa uporabi foreach za vezavo podatkovnega polja na tabelo ali nabor divov na strani. Kadarkoli se podatkovna tabela spremeni, uporabniški vmesnik samodejno reagira na spremembo (ni vam treba napovedovati, kako vstaviti novo vrstico ali kje), ostalo pa je sinhronizacija podatkov uporabniškega vmesnika. Na primer, lahko deklarirate naslednji SPAN, ki prikazuje količino podatkov:
To je to! Za posodobitev ni treba pisati kode, posodobitev je odvisna od sprememb polja myItems. Podobno je vklop in onemogočanje gumba Dodaj odvisno od dolžine polja myItems, kot sledi:
Po tem, če morate implementirati funkcijo "Delete", vam ni treba posebej določati, kako manipulirati z elementi uporabniškega vmesnika, le prilagoditi morate podatkovni model.
Povzetek: KO nima namena konkurirati jQuery in drugim podobnim ogrodjem za manipulacijo DOM. KO omogoča visoko raven povezave podatkovnega modela z uporabniškim vmesnikom.KO ne temelji na samem jQuery, vendar lahko jQuery uporabljate skupaj, Živahne in nežne spremembe uporabniškega vmesnika zahtevajo uporabo jQuery.
Sredstva:
http://www.aizhengli.com/knockoutjs/50/knockout.html
http://knockoutjs.com/
|