Hvad er Knockout.js?
Knockout er et fantastisk Javascrip-bibliotekDet hjælper dig med at skabe en tekstrig brugergrænseflade med gode visnings- og redigeringsmuligheder ved kun at bruge en klar og ren underliggende datamodel. Når som helst dit lokale UI-indhold skal opdateres automatisk (f.eks. afhængigt af ændringer i brugeradfærd eller eksterne datakilder), kan KO nemt implementeres og er meget nemt at vedligeholde.
Vigtige træk ved KO:
Elegant afhængighedssporing - Hver gang datakildemodellen ændres, kan den automatisk opdatere det specificerede indhold i dit UI. Deklarativ binding - Den binder din brugerflade til datakildemodellen på en enkel og overfladisk måde, og du kan bruge enhver indlejret strukturskabelon til at bygge en kompleks dynamisk grænseflade. God skalerbarhed – en brugerdefineret adfærd kan implementeres med nogle få simple kodelinjer, som binder som en ny deklaration.
Andre fordele:
Rent Javascrip{filtering}t-bibliotek - kompatibelt med enhver server- og klientteknologi. Det kan anvendes godt på eksisterende applikationer – uden behov for ændringer i programmets hovedarkitektur. Enkelhed – kun 13K efter Gzip-komprimering. Kompatibel med alle større browsere (f.eks. 6+, Firefox 2+, Chrome, Safari og andre) Et omfattende sæt specifikationer (med adfærdsdrevet udvikling) – det betyder, at de nemt kan verificeres i nye browsere eller platforme. Udviklere, der er bekendt med Ruby on Rails, Asp.net MVC eller andre MVC-teknologier, kan opleve, at det er en MVC realtidsform med en deklarativ syntaks. Med andre ord kan du tænke på KO som en måde at lave en brugergrænseflade ved at redigere JSON-data... Hvad end det gør for dig.
Hvordan bruger man det?
Den hurtigste og sjoveste måde at komme i gang på er gennem interaktiv instruktion, og når du har mestret de mest grundlæggende teknikker og lært hver online-instans, er du klar til at arbejde på dine projekter.
Konkurrerer KO og Jquery (prototype osv.) med hinanden, eller kan de bruges sammen?
Alle elsker Jquery! Tidligere måtte vi udholde forskellige inkonsistente DOM-objektmanipulations-API-metoder, og fremkomsten af Jquery er et godt alternativ til de klodsede frameworks fra fortiden, hvilket gør det fleksibelt og nemt at bruge. Jquery er fremragende og nem at bruge til manipulation og håndtering af hændelser på websider, mens KO løser et andet problem.
Hvis dit UI-interface er en smule mere komplekst og indeholder noget af den samme adfærd, vil UI'en, hvis du kun bruger Jquery, være mere kompleks og svær, end du tror, og det vil være ret dyrt at vedligeholde. Overvej eksemplet med at vise en liste over elementer i en tabel, angive antallet af lister i tabellen og aktivere "Tilføj "Tilføj til"-knappen, når antallet af itemlister er mindre end 5, ellers deaktiveret. Jquery har ikke et grundlæggende datamodelkoncept, så hvis du vil have antallet af projektlister, skal du udlede fra tabellen/tr/div-numrene. Hvis du skal vise mængden af data i visse SPANS, bør du også huske at opdatere teksten i SPAN'en, når du tilføjer nye data. Selvfølgelig skal du også huske, at når det samlede antal >=5, skal du deaktivere Tilføj knappen. Hvis du vil implementere Delete-funktionen, skal du pege på, hvilket DOM-element der skal ændres, efter det er klikket på.
Hvordan er det anderledes at gøre det med Knockout?
Med KO bliver det hele meget enkelt. Det gør det nemt at skalere kompleksiteten af dit projekt uden at bekymre dig om de resulterende datainkonsistenser. Den konverterer blot dine data til et Javascrip{filter}t array og bruger derefter foreach til at binde dataarrayet til en tabel eller et sæt divs på siden. Når dataarrayet ændres, reagerer UI'en automatisk på ændringen (du behøver ikke angive, hvordan en ny række skal indsættes eller hvor), og resten er UI-datasynkroniseringen. For eksempel kan du erklære følgende SPAN for at vise mængden af data:
Det er det! Du behøver ikke skrive kode for at opdatere den, dens opdatering afhænger af ændringer i arrayet myItems. Tilsvarende afhænger aktivering og deaktivering af Add-knappen af længden af arrayet myItems, som følger:
Derefter, hvis du skal implementere "Delete"-funktionen, behøver du ikke specificere, hvordan UI-elementerne skal manipuleres, du skal bare ændre datamodellen.
Resumé: KO har ingen intention om at konkurrere med jQuery og andre lignende DOM-manipulationsframeworks. KO giver en overordnet måde at korrelere datamodellen med brugergrænsefladen.KO afhænger ikke af selve jQuery, men du kan bruge jQuery sammen, Levende og milde UI-ændringer kræver brug af jQuery.
Ressourcer:
http://www.aizhengli.com/knockoutjs/50/knockout.html
http://knockoutjs.com/
|