Motivi per passare da puro JavaScript a una libreria JavaScript

2

Essendo consapevoli dei benefici diretti delle biblioteche che hanno cose racchiuse in un pacchetto, rendendo più facile il lavoro quotidiano, la mia domanda è più incline al fatto che molte funzionalità non implementate in HTML / DOM / CSS, sono diventate disponibili usando queste librerie.

C'è tutto, dagli effetti visivi (13 una dozzina) a quelli più funzionali, tra cui scegliere.

Come lo vedo oggi, 2014, con HTML5 e CSS3, sempre più di queste librerie sembra aver giocato lì ruolo, come una sorta di ponte che copre il divario tra i vecchi browser non capabiliti e le nuove capacità di gestire costruito in.

Inoltre, queste librerie sembrano abbandonare poco a poco il supporto del browser più vecchio.

Questo mi dà da uno sviluppatore una decisione difficile, se passare alla versione successiva con più funzionalità e perdere il vecchio supporto per browser, o rimanere su una versione precedente con meno funzionalità ma con il vecchio supporto per browser e la necessità di sviluppo personalizzato per raggiungere nuova funzionalità.

Quindi la mia domanda è, c'è qualcos'altro che potrei aver perso, che potrebbe influenzare se implementare una libreria come base o usare puro JavaScript e aggiungere una libreria quando è veramente necessaria?

    
posta LGSon 05.03.2014 - 14:30
fonte

3 risposte

5

from http://youmightnotneedjquery.com -

"At the very least, make sure you know what jQuery is doing for you, and what it's not. Some developers believe that jQuery is protecting us from a great demon of browser incompatibility when, in truth, post-IE8, browsers are pretty easy to deal with on their own."

Da un certo punto di vista, qualsiasi dato file .js può essere contato come una libreria rudimentale - non ufficialmente una libreria, naturalmente, ma si può scrivere una manciata di funzioni JavaScript racchiuse in un oggetto che gestiscono i lavori sull'app / sito con cui stai lavorando. Potrebbe anche essere la tua "biblioteca" per gli scopi di quel progetto, e se puoi costruire contro JS puro senza, come, perdere le scadenze o strapparti i capelli, è probabilmente la Decisione giusta.

Il sito web continua a mostrare JavaScript che funzionerà per tutti i browser fino a IE8 incluso, se necessario, ma in realtà è una buona domanda da porsi indipendentemente dal progetto che stai affrontando. Stai solo alternando le lezioni? Non hai un sacco di trasformazioni? Non c'è bisogno di fare affidamento sul codice di qualcun altro, anche se è jQuery.

Onestamente alcune cose appaiono e leggono molto meglio in puro JavaScript rispetto a jQuery comunque. Guarda l'esempio di confronto del sito web di cui sopra tramite jQuery:

$(el).is($(otherEl));

In JavaScript, questo è ridotto a qualcosa di molto più intuitivo (questa è un'opinione, ma in realtà == e === si presentano in un numero sufficiente di altri linguaggi che un camerunese riconoscerebbe questo dalla convenzione e dalle precedenti esperienze, probabilmente più di un chiamata di funzione):

el === otherEl

Questo potrebbe essere un esempio caricato, se non altro per una pratica comune con jQuery è "pre-afferrare" e assegnare un nome ai tuoi oggetti jQuery in questo modo:

function(el, otherEl){
    var $el = $(el);
    var $otherEl = $(otherEl);
    return $el.is($otherEl);
}

Ma il punto è ancora valido, penso. Costruire una libreria su un'altra libreria solo per chiamare metodi di convenienza come removeClass() o hide() sta prendendo la lunga strada verso casa.

    
risposta data 05.03.2014 - 16:46
fonte
3

Ci sono librerie come jQuery che diventano veramente meno rilevanti oggi a causa dei browser che finalmente stanno recuperando.

D'altra parte, ci sono librerie di utility belt come Underscore che finirai per reimplementarti su qualsiasi progetto moderatamente complesso. Queste sono funzioni di utilità semplici e mirate che mi piace usare anche su progetti JS vanilla.

Poi ci sono framework come AngularJS o Montage. Queste sono animali selvaggiamente diversi da jQuery. Mentre jQuery colma il gap del browser, framework come AngularJS ti costringono ad adottare un paradigma completamente diverso che separa la tua interfaccia utente in componenti vagamente legati che hanno legami dichiarativi con i modelli. Non ti serviranno per questi semplici siti web, ma per le applicazioni a pagina singola altamente interattive non puoi fare molto scherzi con DOM-anche jQuery non ti salverà dalla gestione del ciclo di vita della vista, aggiornando i dati in molti punti sullo schermo quando modifiche, instradamento sul lato client, ecc. Pensa a app come Facebook, Twitter.

Poi c'è una nicchia pulita per le librerie che non ti obbligano a riscrivere tutto il tuo codice come AngularJS, ma permetti comunque di creare ricche app JS. Il mio attuale preferito è ReactJS di Facebook, la sua caratteristica killer è il flusso di dati a senso unico e ciò che si può chiamare programmazione DOM dichiarativa: si specifica come l'albero DOM guarda in diversi stati del programma, e ReactJS calcola e applica il set minimo di operazioni DOM necessarie per andare da uno stato all'altro.

Come puoi vedere, lo spazio per i framework JS è vasto, e non dovresti ignorarli tutti solo perché i browser stanno finalmente recuperando jQuery. Ci sono più problemi e più soluzioni allo sviluppo JS lato client, e il campo sta esplodendo proprio ora.

    
risposta data 05.03.2014 - 22:55
fonte
2

Dipende molto dalla quantità di manipolazione DOM che vuoi fare. La cosa bella di jQuery è che ti fornisce un'API fluente per manipolare il modello di oggetto del documento. Se non vuoi qualcosa con lo stesso peso, prova Zepto , che è un'API jQuery compatibile che delega ai metodi del browser nativo, rendendolo più piccolo nella dimensione del file.

Se non hai bisogno di fare molta manipolazione DOM, allora una libreria JavaScript potrebbe non essere più di grande utilità.

    
risposta data 05.03.2014 - 17:13
fonte

Leggi altre domande sui tag