Vad är Knockout.js?
Knockout är ett utmärkt Javascrip-bibliotekDet hjälper dig att skapa ett textrikt användargränssnitt med bra visnings- och redigeringsmöjligheter med endast en tydlig och ren underliggande datamodell. När ditt lokala UI-innehåll behöver uppdateras automatiskt (t.ex. beroende på förändringar i användarbeteende eller externa datakällor) kan KO enkelt implementeras och vara mycket lätt att underhålla.
Viktiga egenskaper hos KO:
Elegant beroendespårning – När datakällmodellen ändras kan den automatiskt uppdatera det specificerade innehållet i ditt användargränssnitt. Deklarativ bindning – Den binder ditt gränssnitt till datakällmodellen på ett enkelt och enkelt sätt, och du kan använda vilken nämlad strukturmall som helst för att bygga ett komplext dynamiskt gränssnitt. God skalbarhet – ett eget beteende kan implementeras med några enkla kodrader för att binda som en ny deklaration.
Andra fördelar:
Rent Javascrip{filtering}t-bibliotek – kompatibelt med vilken server- och klientteknologi som helst. Det kan tillämpas väl på befintliga applikationer – utan behov av ändringar i programmets huvudarkitektur. Enkelhet – bara 13K efter Gzip-komprimering. Kompatibel med alla större webbläsare (t.ex. 6+, Firefox 2+, Chrome, Safari och andra) En omfattande uppsättning specifikationer (med beteendedriven utveckling) – detta innebär att de enkelt kan verifieras i nya webbläsare eller plattformar. Utvecklare som är bekanta med Ruby on Rails, Asp.net MVC eller andra MVC-teknologier kan uppleva att det är ett MVC-realtidsformulär med en deklarativ syntax. Med andra ord kan du tänka på KO som ett sätt att skapa ett användargränssnitt i användargränssnittet genom att redigera JSON-data... Vad det än gör för dig.
Hur använder man den?
Det snabbaste och roligaste sättet att komma igång är genom interaktiv instruktion, och när du har behärskat de mest grundläggande teknikerna och lärt dig varje online-tillfälle är du redo att arbeta med dina projekt.
Konkurrerar KO och Jquery (prototyp, etc.) med varandra eller kan de användas tillsammans?
Alla älskar Jquery! Tidigare har vi fått utstå olika inkonsekventa metoder för DOM-objektmanipulation via API, och framväxten av Jquery är ett utmärkt alternativ till de klumpiga ramverken från förr, vilket gör det flexibelt och lätt att använda. Jquery är utmärkt och lätt att använda för webbsideselementmanipulation och händelsehantering, medan KO löser ett annat problem.
Om ditt UI-gränssnitt är något mer komplext och innehåller en del av samma beteende, om du bara använder Jquery, kommer UI:t att vara mer komplext och svårt än du tror, och det kommer att bli ganska dyrt att underhålla. Tänk på exemplet där man visar en lista med objekt i en tabell, anger antalet listor i tabellen och aktiverar "Lägg till"-knappen när antalet objektlistor är mindre än 5, annars inaktiverat. Jquery har inget grundläggande koncept för datamodeller, så om du vill få antalet projektlistor måste du dra slutsatser från tabell-/tr-/div-numren. Om du behöver visa mängden data i vissa SPANS bör du också komma ihåg att uppdatera texten i SPAN när du lägger till ny data. Självklart måste du också komma ihåg att när totaltalet >=5 måste du inaktivera Lägg till-knappen. Sedan, om du vill implementera funktionen Delete, måste du peka ut vilket DOM-element som behöver ändras efter att det klickats på.
Hur skiljer det sig att göra det med Knockout?
Med KO blir allt väldigt enkelt. Det gör att du enkelt kan skala komplexiteten i ditt projekt utan att oroa dig för de datainkonsekvenser som uppstår. Den konverterar helt enkelt din data till en Javascrip{filter}t-array och använder sedan foreach för att binda dataarrayen till en tabell eller en uppsättning divs på sidan. När datamatrisen ändras svarar gränssnittet automatiskt på ändringen (du behöver inte ange hur man lägger in en ny rad eller var), och resten är UI-datasynkroniseringen. Till exempel kan du deklarera följande SPAN för att visa mängden data:
Det är allt! Du behöver inte skriva kod för att uppdatera den, dess uppdatering beror på ändringar i arrayen myItems. På liknande sätt beror aktivering och avaktivering av Lägg till-knappen på längden på arrayens myItems, enligt följande:
Efter det, om du behöver implementera funktionen "Delete", behöver du inte specificera hur UI-elementen ska manipuleras, du behöver bara modifiera datamodellen.
Sammanfattning: KO har ingen avsikt att konkurrera med jQuery och andra liknande DOM-manipulationsramverk. KO ger ett övergripande sätt att korrelera datamodellen med användargränssnittet.KO är inte beroende av jQuery i sig, men ni kan använda jQuery tillsammans, Levande och mjuka UI-förändringar kräver användning av jQuery.
Resurser:
http://www.aizhengli.com/knockoutjs/50/knockout.html
http://knockoutjs.com/
|