Wat is Knockout.js?
Knockout is een geweldige Javascrip-bibliotheekHet helpt je een tekstrijke gebruikersinterface te creëren met goede weergave- en bewerkingsmogelijkheden, waarbij alleen een duidelijk en schoon onderliggend datamodel wordt gebruikt. Telkens wanneer je lokale UI-inhoud automatisch moet worden bijgewerkt (bijvoorbeeld afhankelijk van veranderingen in gebruikersgedrag of externe databronnen), kan KO eenvoudig worden geïmplementeerd en zeer eenvoudig te onderhouden.
Belangrijke kenmerken van KO:
Elegante afhankelijkheidstracking - Telkens wanneer het databronmodel verandert, kan het automatisch de gespecificeerde inhoud van je UI bijwerken. Declaratieve binding - Het bindt je UI op een eenvoudige en eenvoudige manier aan het databronmodel, en je kunt elk geneste structuursjabloon gebruiken om een complexe dynamische interface te bouwen. Goede schaalbaarheid - een aangepast gedrag kan worden geïmplementeerd met een paar eenvoudige regels code om als nieuwe declaratie te binden.
Andere voordelen:
Pure Javascrip{filtering}t bibliotheek - compatibel met elke server- en clienttechnologie. Het kan goed worden toegepast op bestaande applicaties - zonder dat er wijzigingen in de hoofdarchitectuur van het programma nodig zijn. Eenvoud - slechts 13K na Gzip-compressie. Compatibel met elke grote browser (bijvoorbeeld 6+, Firefox 2+, Chrome, Safari en andere) Een uitgebreide set specificaties (met gedragsgestuurde ontwikkeling) – dit betekent dat ze eenvoudig kunnen worden geverifieerd in nieuwe browsers of platforms. Ontwikkelaars die bekend zijn met Ruby on Rails, Asp.net MVC of andere MVC-technologieën kunnen het als een MVC real-time formulier met een declaratieve syntaxis ervaren. Met andere woorden, je kunt KO zien als een manier om een UI-gebruikersinterface te maken door JSON-data te bewerken... Wat het ook voor je doet.
Hoe gebruik je het?
De snelste en leukste manier om te beginnen is via interactieve instructie, en zodra je de meest basale technieken hebt beheerst en elke online instantie hebt geleerd, ben je klaar om aan je projecten te werken.
Concurreren KO en Jquery (prototype, enz.) met elkaar of kunnen ze samen worden gebruikt?
Iedereen houdt van Jquery! In het verleden moesten we verschillende inconsistente DOM-objectmanipulatie-API-methoden doorstaan, en de opkomst van Jquery is een uitstekend alternatief voor de logge frameworks van vroeger, waardoor het flexibel en gebruiksvriendelijk is. Jquery is uitstekend en eenvoudig te gebruiken voor webpagina-elementenmanipulatie en eventafhandeling, terwijl KO een ander probleem oplost.
Als je UI-interface iets complexer is en hetzelfde gedrag bevat, zal de UI complexer en moeilijker zijn dan je denkt, en het onderhoud wordt behoorlijk duur als je alleen Jquery gebruikt. Beschouw het voorbeeld van het weergeven van een lijst met items in een tabel, waarbij het aantal lijsten in de tabel wordt vermeld, en de knop "Voeg toevoegen" wordt ingeschakeld wanneer het aantal itemslijsten minder dan 5 is, anders uitgeschakeld. Jquery heeft geen basisconcept van datamodellen, dus als je het aantal projectlijsten wilt krijgen, moet je afleiden uit de tabel/tr/div-nummers. Als je de hoeveelheid data in bepaalde SPANS moet weergeven, moet je ook onthouden de tekst van de SPAN bij te werken bij het toevoegen van nieuwe data. Natuurlijk moet je ook onthouden dat wanneer het totaal >=5 is, je de toevoegknop moet uitschakelen. Als je vervolgens de Delete-functie wilt implementeren, moet je aangeven welk DOM-element moet worden aangepast nadat het is aangeklikt.
Hoe is het anders om het met Knockout te doen?
Met KO wordt het allemaal heel eenvoudig. Het stelt je in staat om de complexiteit van je project eenvoudig op te schalen zonder je zorgen te maken over de resulterende data-inconsistenties. Het converteert simpelweg je data naar een Javascrip{filter}t array, en gebruikt vervolgens foreach om de dataarray te binden aan een tabel of een set divs in de pagina. Telkens wanneer de dataarray verandert, reageert de UI automatisch op de wijziging (je hoeft niet aan te geven hoe je een nieuwe rij invoegt of waar), en de rest is de UI-datasynchronisatie. Je kunt bijvoorbeeld de volgende SPAN declareren om de hoeveelheid data weer te geven:
Dat is het! Je hoeft geen code te schrijven om het te updaten, de update hangt af van wijzigingen in de array myItems. Evenzo hangt het in- en uitschakelen van de Toevoegknop af van de lengte van de array myItems, als volgt:
Daarna, als je de functie "Delete" moet implementeren, hoef je niet te specificeren hoe je de UI-elementen moet manipuleren, je hoeft alleen het datamodel aan te passen.
Samenvatting: KO is niet van plan te concurreren met jQuery en andere vergelijkbare DOM-manipulatieframeworks. KO biedt een overzichtelijke manier om het datamodel te correleren met de gebruikersinterface.KO is niet afhankelijk van jQuery zelf, maar je kunt jQuery samen gebruiken, Levendige en zachte UI-wijzigingen vereisen het gebruik van jQuery.
Weg:
http://www.aizhengli.com/knockoutjs/50/knockout.html
http://knockoutjs.com/
|