Third-Party Components at Their Best

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Ich bin ein Fan der Komponentisierung des Webs. Ich halte es für eine sehr gute Methode, um eine Website in nahezu jeder Größenordnung zu erstellen (außer vielleicht für die absolut grundlegendsten). Es gibt viele Meinungen darüber, was eine gute Komponente ausmacht, aber sagen wir, wir beschränken uns im Moment auf Drittanbieter-Komponenten. Das heißt, Komponenten, die man einfach *benutzt*, im Gegensatz zu Komponenten, die man selbst als Teil des einzigartigen Setups seiner Website erstellt.

Was macht eine Drittanbieter-Komponente gut? Mein liebstes Attribut einer Drittanbieter-Komponente ist, wenn sie etwas Schwieriges nimmt und es einfach macht. Insbesondere Dinge, die Nuancen erkennen und richtig handhaben, oder Dinge, über die man vielleicht nicht einmal *genug weiß*, um sie richtig zu machen.

Vielleicht verwenden Sie eine Komponente, die kontextbezogene Pop-up-Menüs für Sie erstellt. Sie führt möglicherweise Browser-Rand-Erkennung durch, z. B. um sicherzustellen, dass das Menü nie abgeschnitten oder außerhalb des Bildschirms erscheint. Das ist ein kniffliges kleines Stück Programmierung, das man möglicherweise nicht richtig hinbekommt, wenn man es selbst macht – oder es sogar vergisst zu tun.

Ich denke an die <Link /> Komponente, die React Router hat oder die auf Gatsby-Websites verwendet wird. Sie fügt automatisch aria-current="page" für Sie zu den Links hinzu, wenn Sie sich auf dieser Seite befinden. Sie können und sollten das wahrscheinlich für einen Styling-Hook verwenden! Und Sie hätten das wahrscheinlich vergessen zu programmieren, wenn Sie Ihre eigenen Links verwalten würden.

In diesem Sinne haben Reach UI Tabs eine strenge Barrierefreiheit integriert, die Sie wahrscheinlich nicht richtig hinbekommen würden, wenn Sie sie von Hand erstellen würden. Diese React-Bildkomponente erledigt allerlei Dinge, die mit Bildern relativ schwierig zu realisieren sind, wie die komplexe Syntax für reaktionsschnelle Bilder, Lazy Loading, Platzhalter usw. Das ist in gewisser Weise, dass man Ihnen Best Practices "kostenlos" anbietet.

Hier ist eine Tabellenbibliothek, die sich nicht einmal um die Benutzeroberfläche kümmert, sondern sich stattdessen auf andere Bedürfnisse konzentriert, die Sie wahrscheinlich bei Tabellen haben, was ein weiterer faszinierender Ansatz ist.

Jedenfalls! Hier ist, was Sie alle gesagt haben, als ich danach gefragt habe. Was macht eine Drittanbieter-Komponente großartig? Was machen die besten davon? (abgesehen vom Offensichtlichen, wie gute Dokumentation und gute Barrierefreiheit)? Einige davon mögen sich widersprechen. Ich liste nur auf, was die Leute gesagt haben, dass sie es mögen.

  • Plug-and-play. Es sollte mit minimaler Konfiguration "einfach funktionieren".
  • Viele bearbeitbare Demos
  • Hochgradig konfigurierbar
  • „White-Label“-Styling. Bringen Sie keine zu starken Designentscheidungen mit.
  • Gestaltet über normales CSS, damit Sie Ihre eigenen Styling-Tools mitbringen können (BYO)
  • Schnell
  • Klein
  • Ist über einen Paketmanager installierbar
  • Kann manuell instanziiert werden
  • Kann einen DOM-Knoten erhalten, an dem es platziert werden kann
  • Folgt einem nützlichen Versionsschema
  • Wird gewartet, insbesondere im Hinblick auf die Sicherheit
  • Hat eine öffentliche Roadmap
  • Ist Framework-agnostisch
  • Hat keine anderen Abhängigkeiten
  • Verwendet intuitive Namenskonventionen
  • Unterstützt Internationalisierung
  • Hat viele Tests

Gibt es etwas, das Sie dieser Liste hinzufügen würden?