Hva er Knockout.js?
Knockout er et flott Javascrip-bibliotekDet hjelper deg å lage et tekstrikt brukergrensesnitt med gode visnings- og redigeringsmuligheter, kun ved å bruke en klar og ren underliggende datamodell. Når som helst innholdet i ditt lokale UI må oppdateres automatisk (f.eks. avhengig av endringer i brukeratferd eller eksterne datakilder), kan KO enkelt implementeres og være veldig lett å vedlikeholde.
Viktige egenskaper ved KO:
Elegant avhengighetssporing – Hver gang datakildemodellen endres, kan den automatisk oppdatere det spesifiserte innholdet i brukergrensesnittet ditt. Deklarativ binding – Den binder brukergrensesnittet ditt til datakildemodellen på en enkel og enkel måte, og du kan bruke hvilken som helst nestelt strukturmal for å bygge et komplekst dynamisk grensesnitt. God skalerbarhet – en tilpasset oppførsel kan implementeres med noen enkle kodelinjer som bindes som en ny deklarasjon.
Andre fordeler:
Rent Javascrip{filtering}t-bibliotek – kompatibelt med alle server- og klientteknologier. Det kan anvendes godt på eksisterende applikasjoner – uten behov for endringer i programmets hovedarkitektur. Enkelhet – bare 13K etter Gzip-komprimering. Kompatibel med alle større nettlesere (f.eks. 6+, Firefox 2+, Chrome, Safari og andre) Et omfattende sett med spesifikasjoner (med atferdsdrevet utvikling) – dette betyr at de enkelt kan verifiseres i nye nettlesere eller plattformer. Utviklere som er kjent med Ruby on Rails, Asp.net MVC eller andre MVC-teknologier kan oppleve at det er en MVC sanntidsform med en deklarativ syntaks. Med andre ord kan du tenke på KO som en måte å lage et brukergrensesnitt på ved å redigere JSON-data... Hva enn det gjør for deg.
Hvordan bruke den?
Den raskeste og morsomste måten å komme i gang på er gjennom interaktiv instruksjon, og når du har mestret de mest grunnleggende teknikkene og lært hver online instans, er du klar til å jobbe med prosjektene dine.
Konkurrerer KO og Jquery (prototype, osv.) med hverandre, eller kan de brukes sammen?
Alle elsker Jquery! Tidligere måtte vi tåle ulike inkonsistente DOM-objektmanipulasjons-API-metoder, og fremveksten av Jquery er et flott alternativ til de klønete rammeverkene fra tidligere, noe som gjør det fleksibelt og brukervennlig. Jquery er utmerket og enkel å bruke for manipulering av nettsideelementer og hendelseshåndtering, mens KO løser et annet problem.
Hvis UI-grensesnittet ditt er litt mer komplekst og inneholder noe av samme oppførsel, hvis du kun bruker Jquery, vil UI-en være mer kompleks og vanskelig enn du tror, og det vil være ganske dyrt å vedlikeholde. Tenk deg eksempelet med å vise en liste over elementer i en tabell, oppgi antall lister i tabellen, og aktivere "Legg til"-knappen når antall varelister er mindre enn 5, ellers deaktivert. Jquery har ikke et grunnleggende datamodellkonsept, så hvis du vil få ut antall prosjektlister, må du utlede fra tabell-/tr-/div-tallene. Hvis du trenger å vise datamengden i visse SPANS, bør du også huske å oppdatere teksten i SPAN når du legger til nye data. Selvfølgelig må du også huske at når totaltallet >=5, må du deaktivere Legg til-knappen. Deretter, hvis du vil implementere Delete-funksjonen, må du peke ut hvilket DOM-element som må endres etter at det er klikket.
Hvordan er det annerledes å gjøre det med Knockout?
Med KO blir alt veldig enkelt. Det lar deg enkelt skalere kompleksiteten i prosjektet ditt uten å bekymre deg for de resulterende datainkonsistensene. Den konverterer ganske enkelt dataene dine til et Javascrip{filter}t-array, og bruker deretter foreach for å binde dataarrayet til en tabell eller et sett med divs på siden. Hver gang dataarrayet endres, reagerer UI-en automatisk på endringen (du trenger ikke å angi hvordan en ny rad skal settes inn eller hvor), og resten er UI-datasynkroniseringen. For eksempel kan du erklære følgende SPAN for å vise datamengden:
Det er det! Du trenger ikke å skrive kode for å oppdatere den, oppdateringen avhenger av endringer i arrayet myItems. På samme måte avhenger aktivering og deaktivering av Add-knappen av lengden på arrayet myItems, som følger:
Etter det, hvis du trenger å implementere "Delete"-funksjonen, trenger du ikke spesifisere hvordan UI-elementene skal manipuleres, du må bare endre datamodellen.
Sammendrag: KO har ingen intensjon om å konkurrere med jQuery og andre lignende DOM-manipulasjonsrammeverk. KO gir en overordnet måte å korrelere datamodellen med brukergrensesnittet.KO avhenger ikke av jQuery i seg selv, men du kan bruke jQuery sammen, Levende og milde UI-endringer krever bruk av jQuery.
Ressurser:
http://www.aizhengli.com/knockoutjs/50/knockout.html
http://knockoutjs.com/
|