Pakete, Repositories und App-Kategorien suchen

Paketdetailsv1.1.1

nil

Ein einfaches Widget, das Sie in die Widget-Baum hinzufügen können, wenn Sie nichts anzeigen möchten, mit minimalem Einfluss auf die Leistung.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
9530
Likes
324
Pub-Punkte
140

Paket installieren

flutter pub add nil

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Das nil-Paket bietet ein minimales, leistungsoptimiertes Widget, das nichts rendert, wenn es in die Widget-Baum integriert wird. Es ist für Szenarien konzipiert, in denen Sie einen Platzhalter oder bedingtes Widget benötigen, das keinen Einfluss auf Layout oder Rendering-Aufwand hat. Im Gegensatz zu SizedBox.shrink() oder Container() hat nil keinerlei Auswirkung auf die Leistung der Widget-Baum und ist ideal für dynamische UI-Logik, bei der Sichtbarkeitsbedingungen extern behandelt werden. Es ist leichtgewichtig und sicher in komplexen oder häufig aktualisierten Benutzeroberflächen einsetzbar.

Anwendungsfälle

  • Bedingte Darstellung ohne visuelle Ausgabe
  • Leere Container in dynamischen Layouts ersetzen
  • Leistungsoptimierung in großen Widget-Bäumen
  • Vereinfachung von Null-Prüfungen bei der Widget-Komposition
  • Unnötige Layoutberechnungen vermeiden

Hauptmerkmale

  • Keine Rendering-Kosten
  • Kein Layout-Effekt
  • Minimaler Speicherbedarf
  • Einfache API
  • Sicher für häufige Aktualisierungen

Geeignet für

  • Entwickler optimieren die Benutzeroberflächenleistung
  • Bauer dynamischer oder bedingter Benutzeroberflächen
  • Teams, die minimalen Overhead priorisieren
  • Apps mit komplexen oder verschachtelten Widget-Bäumen
  • Diejenigen, die eine saubere Alternative zu leeren Widgets suchen

Hinweise

  • Nicht geeignet für sichtbare Inhalte
  • Unterstützt keine Kind-Widgets
  • Nur nützlich, wenn absichtlich nichts gerendert wird
  • Nicht erforderlich, wenn integrierte null-sichere Konstrukte verwendet werden
  • Am besten in Kombination mit bedingter Logik verwendet

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

Build Pub Codecov

nil

A simple widget to add in the widget tree when you want to show nothing, with minimal impact on performance.

Why?

Sometimes, according to a condition, we want to display nothing. Usually when we can't return null, we would return something like const SizedBox() for example.

This is good, but it has some performance impacts since SizedBox creates a RenderObject. The RenderObject lives in the render tree and some computations are performed on it, even if it paints nothing on the screen.

We can do better, we can have a widget which does not create a RenderObject, while being still valid. The Nil widget is the minimal implementation for this use case. It only creates an Element and does nothing while it's building. Because the optimal way to use it, is to call const Nil(), it also comes with a nil constant that you can use everywhere (which is a const Nil()).

Usage

import 'package:nil/nil.dart';

return Builder(
  builder: (_) {
    if (condition) {
      return const MyWidget();
    } else {
      return nil;
    }
  },
);

Warning

This widget is not intended to be used in widgets accepting multiple children (e.g. Rows, Columns, etc.). The best option is to not add a widget in the list if you don't want it to be displayed. Moreover using a Nil widget in such a case, can have unexpected results.

Sponsoring

I'm working on my packages on my free-time, but I don't have as much time as I would. If this package or any other package I created is helping you, please consider to sponsor me so that I can take time to read the issues, fix bugs, merge pull requests and add features to these packages.

Contributions

Feel free to contribute to this project.

If you find a bug or want a feature, but don't know how to fix/implement it, please fill an issue.
If you fixed a bug or implemented a feature, please send a pull request.

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden