Cos'è Knockout.js?
Knockout è una grande libreria JavascripTi aiuta a creare un'interfaccia utente ricca di testo, con buone capacità di visualizzazione e modifica, utilizzando solo un modello di dati sottostante chiaro e pulito. Ogni volta che il contenuto della tua interfaccia locale deve essere aggiornato automaticamente (ad esempio, a seconda dei cambiamenti nel comportamento dell'utente o di fonti di dati esterne), KO può essere facilmente implementato e molto facile da mantenere.
Caratteristiche importanti del KO:
Tracciamento elegante delle dipendenze - Ogni volta che il modello della sorgente dati cambia, può aggiornare automaticamente il contenuto specificato della tua UI. Binding dichiarativo - Collega la tua interfaccia al modello di sorgente dati in modo semplice e semplice, e puoi usare qualsiasi template di struttura annidata per costruire un'interfaccia dinamica complessa. Buona scalabilità - un comportamento personalizzato può essere implementato con poche semplici righe di codice da associare come nuova dichiarazione.
Altri vantaggi:
Pura libreria Javascrip{filtering}t - compatibile con qualsiasi tecnologia server e client. Può essere applicato bene alle applicazioni esistenti senza la necessità di modifiche nell'architettura principale del programma. Semplicità - solo 13K dopo la compressione Gzip. Compatibile con qualsiasi browser principale (ad esempio 6+, Firefox 2+, Chrome, Safari e altri) Un insieme completo di specifiche (con sviluppo guidato dal comportamento) – questo significa che possono essere facilmente verificate su nuovi browser o piattaforme. Gli sviluppatori familiari con Ruby on Rails, Asp.net MVC o altre tecnologie MVC potrebbero trovarlo una forma in tempo reale MVC con una sintassi dichiarativa. In altre parole, puoi pensare a KO come a un modo per creare un'interfaccia utente UI modificando i dati JSON... Qualunque cosa faccia per te.
Come si usa?
Il modo più rapido e divertente per iniziare è attraverso l'istruzione interattiva, e una volta che avrai padroneggiato le tecniche più basilari e imparato ogni istanza online, sarai pronto a lavorare sui tuoi progetti.
KO e Jquery (prototipo, ecc.) competono tra loro o possono essere usati insieme?
Tutti amano Jquery! In passato abbiamo dovuto affrontare vari metodi di manipolazione degli oggetti DOM incoerenti, e l'emergere di Jquery è un'ottima alternativa ai framework ingombranti del passato, rendendolo flessibile e facile da usare. Jquery è eccellente e facile da usare per la manipolazione degli elementi della pagina web e la gestione degli eventi, mentre KO risolve un problema diverso.
Se la tua interfaccia utente è leggermente più complessa e contiene alcuni degli stessi comportamenti, se usi solo Jquery, l'interfaccia sarà più complessa e difficile di quanto pensi, e sarà piuttosto costoso mantenerla. Consideriamo l'esempio di visualizzare una lista di elementi in una tabella, indicare il numero di liste nella tabella e abilitare il pulsante "Aggiungi" quando il numero di liste di elementi è inferiore a 5, altrimenti disabilitato. Jquery non ha un concetto base di data model, quindi se vuoi ottenere il numero di liste di progetti, devi dedurre dai numeri di tabella/tr/div. Se devi visualizzare la quantità di dati in determinati SPAN, dovresti anche ricordarti di aggiornare il testo dello SPAN quando aggiungi nuovi dati. Ovviamente, devi anche ricordare che quando il numero totale >=5, devi disabilitare il pulsante Aggiungi. Poi, se vuoi implementare la funzione Cancella, devi indicare quale elemento DOM deve essere cambiato dopo averlo cliccato.
In cosa è diverso farlo con Knockout?
Con il KO tutto diventa molto semplice. Ti permette di scalare facilmente la complessità del tuo progetto senza preoccuparti delle conseguenti incoerenze nei dati. Semplicemente converte i tuoi dati in un array Javascrip{filter}t, e poi usa foreach per associare l'array di dati a una tabella o a un insieme di div nella pagina. Ogni volta che l'array di dati cambia, l'interfaccia utente risponde automaticamente al cambiamento (non è necessario indicare come inserire una nuova riga o dove), e il resto è la sincronizzazione dati dell'interfaccia. Ad esempio, puoi dichiarare la seguente SPAN per mostrare la quantità di dati:
Questo è tutto! Non è necessario scrivere codice per aggiornarlo, il suo aggiornamento dipende dalle modifiche all'array myItems. Analogamente, l'abilitazione e disabilitazione del pulsante Aggiungi dipende dalla lunghezza dell'array myItems, come segue:
Dopodiché, se devi implementare la funzione "Elimina", non devi specificare come manipolare gli elementi dell'interfaccia utente, basta modificare il modello dati.
Riassunto: KO non ha intenzione di competere con jQuery e altri framework simili di manipolazione DOM. KO fornisce un modo ad alto livello per correlare il modello dati con l'interfaccia utente UI.KO non dipende da jQuery in sé, ma puoi usare jQuery insieme, Cambiamenti vividi e delicati nell'interfaccia utente richiedono l'uso di jQuery.
Risorse:
http://www.aizhengli.com/knockoutjs/50/knockout.html
http://knockoutjs.com/
|