Cash, eine kleine jQuery-Alternative für moderne Browser
(github.com/fabiospampinato)Einführung in Cash
- Cash ist eine sehr kleine jQuery-Alternative für moderne Browser (IE11+) und bietet eine jQuery-ähnliche Syntax für die DOM-Manipulation.
- Um die Codebasis so klein wie möglich zu halten, nutzt es Funktionen moderner Browser und bietet jQuery-ähnliche, verkettbare Methoden bei deutlich kleinerer Dateigröße.
- Es zielt nicht auf eine 100%ige Funktionsgleichheit mit jQuery ab, deckt aber die meisten alltäglichen Anwendungsfälle ab.
Vergleich
-
Größenvergleich
- Unminified: Cash 36.5 KB, Zepto 58.7 KB, jQuery Slim 227 KB
- Minified: Cash 16 KB, Zepto 26 KB, jQuery Slim 71 KB
- Minified & Gzipped: Cash 6 KB, Zepto 9.8 KB, jQuery Slim 24.4 KB
- Im Vergleich zu jQuery Slim ergibt sich eine Größenreduktion von 76.6%.
-
Funktionsvergleich
- Unterstützung alter Browser: Cash ❌, Zepto ❌, jQuery Slim ✔
- Unterstützung moderner Browser: Cash ✔, Zepto ✔, jQuery Slim ✔
- Aktive Wartung: Cash ✔, Zepto ❌, jQuery Slim ✔
- Namespace-Events: Cash ✔, Zepto ❌, jQuery Slim ✔
- TypeScript-Codebasis: Cash ✔, Zepto ❌, jQuery Slim ❌
- TypeScript-Typen: Cash ✔, Zepto ⚠️, jQuery Slim ⚠️
- Unterstützung für Partial Builds: Cash ✔, Zepto ⚠️, jQuery Slim ⚠️
Verwendung
- Cash ist über jsDelivr verfügbar und kann wie folgt verwendet werden:
<script src="https://cdn.jsdelivr.net/npm/cash-dom/…; <script> $(function () { $('html').addClass('dom-loaded'); $('<footer>Appended with Cash</footer>').appendTo(document.body); }); </script> - Es kann auch über npm als Paket
cash-domverwendet werden:import $ from "cash-dom"; $(function () { $('html').addClass('dom-loaded'); $('<footer>Appended with Cash</footer>').appendTo(document.body); });
Dokumentation
- Cash bietet Query-Selektoren, Collection-Methoden und einige Library-Methoden.
- Man kann sich an der API von jQuery orientieren; Cash implementiert die meisten mit jQuery kompatiblen Funktionen.
- Cash kann mit benutzerdefinierten Methoden erweitert werden.
Mitwirken
- Wenn du ein Problem findest oder eine Funktion anfragen möchtest, solltest du ein Issue eröffnen.
- Für einen Pull Request folge diesen Schritten:
- Repository klonen:
git clone https://github.com/fabiospampinato/cash.git - In das geklonte Repository wechseln:
cd cash - Abhängigkeiten installieren:
npm install - Cash bei Änderungen automatisch neu kompilieren:
npm run dev - Test-Suite öffnen:
npm run test - README bei Bedarf aktualisieren
- Repository klonen:
Danksagung
- Dank an alle Mitwirkenden, die zur Entwicklung von Cash beigetragen haben.
- Dank an @hisk für das Logo-Design.
Lizenz
- MIT © Fabio Spampinato
1 Kommentare
Hacker-News-Kommentare
Browser vereinfachen die DOM-Manipulation, sodass sich vieles mit nur zwei Codezeilen erledigen lässt
document.querySelectorunddocument.querySelectorAllwerden gebunden und verwendetDer Vorteil von jQuery liegt in der automatischen Listenverarbeitung und in Parent-Query-Funktionen
Da Mainstream-Websites viel JavaScript verwenden, ist es ineffizient, eine komplette Bibliothek noch einmal neu zu schreiben
Vorstellung einer persönlich entwickelten Bibliothek als jQuery-Alternative
Es wurde auf Unterschiede zwischen jQuery und Cash hingewiesen
Erfahrung mit Shoestring zum Reduzieren von JS
Ziel ist es, mithilfe von TypeScript-Template-Strings den Typ eines Elements abzuleiten
$('div#name')als HTMLDivElement abgeleitetjQuery 4 ist eine Alternative für moderne Browser
In Browser-Erweiterungen wurde jQuery verwendet, später aber auf eine JSX-Bibliothek umgestellt
Kleine Bibliotheken und Frameworks sind sympathisch, in der Praxis werden jedoch oft große Bibliotheken verwendet