14 Repos
Mechanisms for passing shared instances or context down through a component hierarchy.
Distinguishing note: Focuses on dependency injection for component trees rather than general state management.
Explore 14 awesome GitHub repositories matching user interface & experience · State Injection Patterns. Refine with filters or upvote what's useful.
This project is a React-based WebGL renderer that enables the creation of three-dimensional scenes using a declarative, component-driven architecture. It functions as a bridge between a component-based user interface library and a low-level graphics engine, allowing developers to manage lights, cameras, and geometry as standard elements within a reactive tree structure. The library distinguishes itself by treating the scene graph as a declarative hierarchy that synchronizes directly with application state and lifecycle events. It utilizes a custom reconciler to map component updates to object
Passes scene-specific instances like cameras and renderers down the component tree through a provider-consumer pattern.
ButterKnife is an Android view binding library and Java annotation processor that automates the linking of UI elements and resources to class fields and methods. It functions as a system for managing view references and event listeners to reduce repetitive setup code in Android applications. The library uses compile-time code generation to replace manual view lookups and type casting with generated helper classes, ensuring a reflection-free runtime. It differentiates itself by providing mechanisms for binding interaction events directly to methods, eliminating the need for anonymous inner cla
Supports scoping view lookups to a specific view hierarchy for custom components or sub-screens.
Jotai is a state management library for React applications that utilizes an atomic model to handle data. It organizes application state into small, independent units called atoms, which automatically track dependencies and trigger granular updates to components. By building state through these composable primitives, the library ensures that only the necessary parts of an application re-render when data changes. The library distinguishes itself through its flexible approach to state composition and asynchronous data handling. It integrates promises directly into the state model, allowing devel
Creates isolated state instances by injecting specific values into a scope.
Kepler.gl is a web-based geospatial visualization framework designed for rendering large-scale location datasets. It functions as a modular React mapping component that enables developers to embed interactive, high-performance geographic visualizations into web applications, serving as a comprehensive engine for building browser-based GIS dashboards. The library distinguishes itself through a highly extensible architecture that centers on centralized state management. By utilizing a predictable state-driven model, it allows for the programmatic control of map layers, filters, and viewport set
Connects custom interface components to internal application state and action creators.
This is a reference project that implements the same TodoMVC application across multiple Flutter state management and architecture patterns, enabling direct side-by-side comparison. The project demonstrates how different approaches—including BLoC, Redux, MobX, Provider, and Scoped Model—handle state, data flow, and separation of concerns within the Flutter framework. Each architecture implementation is built to the same specification and runs an identical suite of shared integration tests, ensuring consistent behavior across all patterns. This allows developers to evaluate the trade-offs of e
Shares state by injecting a model object deep into the widget hierarchy using InheritedWidget.
RIBs is a mobile architecture framework that structures applications around isolated, lifecycle-managed units of business logic called RIBs. Each RIB separates routing, business logic, and construction into distinct classes through the Router-Interactor-Builder pattern, with hierarchical dependency injection scoping dependencies per node and static analysis enforcing architectural rules at build time. The framework enforces automatic disposal of Rx subscriptions scoped to interactor lifecycles, blocking compilation when subscriptions lack proper disposal to prevent memory leaks. It supports v
Defines explicit dependencies per business logic node and injects them from parent nodes through hierarchical DI.
Unstated is a React state management library that encapsulates application state and update logic within decoupled containers. It functions as a container-based state store, allowing state and business logic to be organized into standalone classes that trigger component re-renders when data changes. The project serves as a dependency injection framework, enabling specific state container instances to be supplied to the component tree. This mechanism supports the use of mock containers or stubs to facilitate controlled testing and custom configurations. The library covers global state managem
Supplies specific container instances to the application to facilitate stubbing and custom configuration during testing.
Riverpod is a reactive state management framework for Dart that manages application state through providers which automatically track dependencies and rebuild dependents when values change. It functions as an asynchronous data caching library, caching results of async operations and exposing loading, error, and data states to widgets without manual future handling. The framework includes a provider composition system that combines multiple providers into derived values that recompute automatically when any dependency changes, along with code generation for state providers that reduces boilerpl
Enables dependent providers to correctly resolve scoped values through explicit dependency declarations.
Dieses Projekt ist ein TypeScript-basiertes Toolkit, das Decorators und klassenbasierte Strukturen für den Aufbau von Vue.js-Komponenten bereitstellt. Es fungiert als Wrapper, der die Standard-Options-API-Objektkonfiguration durch eine klassenbasierte Bibliothek ersetzt, was es Entwicklern ermöglicht, Komponentenlogik, Status und Metadaten mittels typisierter Eigenschaften zu definieren. Das Toolkit konzentriert sich auf die Verwendung von TypeScript-Decorators, um Klasseneigenschaften auf Komponentenoptionen wie Props, Models und Watcher abzubilden. Es ermöglicht typgesteuerte Prop-Validierung und bietet eine strukturierte Syntax für die Verwaltung reaktiver Status-Synchronisation und Komponentenkommunikation. Die Bibliothek deckt breite Funktionsbereiche ab, einschließlich hierarchischem Datenaustausch durch Dependency Injection, Two-Way-Model-Binding und Eigenschaftsänderungs-Beobachtung. Sie enthält zudem Systeme zur Erstellung typisierter Referenzen auf HTML-Elemente oder Kind-Komponenteninstanzen für die direkte Manipulation.
Implements a provide-and-inject pattern to pass data from parent to deep descendants.
Cucumber-js ist ein Tool für verhaltensgesteuerte Entwicklung (BDD) und ein Framework für die Automatisierung von Akzeptanztests für JavaScript. Es dient als Testautomatisierungs-Engine, die es Benutzern ermöglicht, Systemverhalten mithilfe von menschenlesbaren Szenarien zu definieren und Klartext-Schritte auf ausführbaren Code abzubilden, um zu verifizieren, dass die Software Geschäftsregeln und Akzeptanzkriterien entspricht. Das Projekt nutzt ein Gherkin-basiertes Framework, um ausführbare Systemdokumentation in natürlicher Sprache zu erstellen. Es unterstützt mehrsprachige Lokalisierung für das Schreiben von Szenarien in verschiedenen Sprachen und bietet Tools zur Szenario-Parametrisierung und Gruppierung von Geschäftsregeln, um Akzeptanzkriterien zu organisieren. Die Engine deckt ein breites Spektrum an Testfunktionen ab, einschließlich End-to-End-Browser-Automatisierung und API-Testautomatisierung zur Verifizierung von Web-Service-Endpunkten. Sie verwaltet die Testausführung durch parallele Verarbeitung, Mocking von Infrastrukturabhängigkeiten und Dependency Injection zur Wahrung der Datenkontinuität über Schritte hinweg. Die Integration in Continuous-Delivery-Pipelines wird unterstützt, wodurch automatisierte Test-Suiten über Build-Server ausgeführt werden können, um Codeänderungen vor der Bereitstellung zu verifizieren.
Provides a shared context object to step definitions to maintain data continuity across a single scenario.
Provider ist ein State-Management- und Dependency-Injection-Framework für Flutter. Es vereinfacht die gemeinsame Nutzung von Daten innerhalb eines Widget-Baums durch ein System, das die Injektion von Objekten und Services mit automatisiertem Lebenszyklus und Ressourcenbereinigung verwaltet. Das Framework zeichnet sich durch reaktive State-Container aus, die asynchrone Daten aus Streams und Futures direkt in den Komponentenbaum einbinden. Es unterstützt State-Derivation, wodurch neue Objekte basierend auf Werten aus mehreren Upstream-Providern konstruiert und synchronisiert werden können. Zur Performance-Optimierung bietet es selektive Rebuild-Filter und partielle State-Subscriptions, um Updates auf spezifische UI-Bereiche zu begrenzen. Die Bibliothek deckt breite Einsatzbereiche ab, darunter Interface-Mapping zur Entkopplung konkreter Implementierungen von abstrakten Interfaces sowie Provider-Komposition, um mehrere Dependency-Definitionen zu flachen und die Verschachtelung zu reduzieren. Zudem enthält sie Utilities für optionale Dependency-Resolution und die Erhaltung des App-Status während Hot-Reload-Zyklen.
Implements state propagation using Flutter's native InheritedWidget for efficient, constant-time data lookups across the widget tree.
Autofac ist ein Dependency-Injection-Framework und ein Inversion-of-Control-Container für .NET. Es fungiert als Komponenten-Registrierungs-Engine, die Klassenimplementierungen von ihren Abhängigkeiten entkoppelt, indem erforderliche Dienste über Konstruktoren oder Eigenschaften injiziert werden. Das Projekt enthält eine Assembly-Scanning-Bibliothek zur automatischen Entdeckung und Registrierung von Komponenten innerhalb kompilierter Binärdateien basierend auf spezifischen Typkriterien. Es bietet einen Service-Lifetime-Manager zur Steuerung der Objektspeicherdauer unter Verwendung von Singletons, Instance-per-Dependency oder isolierten Request-Scopes. Das Framework deckt ein breites Spektrum an Funktionen ab, darunter rekursive Dependency-Injection, bedingte Service-Auflösung und die Organisation von Registrierungen in wiederverwendbaren Modulen. Es unterstützt zudem die Verwaltung isolierter Auflösungs-Scopes, um sicherzustellen, dass Instanzen ordnungsgemäß freigegeben werden. Das System integriert sich in verschiedene Umgebungen und bietet Mechanismen für das Bootstrapping von Anwendungs-Hostings, Dependency-Injection für serverlose Funktionen und automatisiertes Test-Mocking.
Provides isolated scopes for resolving services to ensure that scoped instances are properly disposed.
TypeDI is a TypeScript dependency injection container and inversion of control tool. It functions as a centralized registry and service locator that manages object instantiation and decouples component dependencies using type inference and decorators. The project provides scoped dependency management to isolate service instances within specific contexts, preventing data leakage between different execution flows. It supports flexible service resolution through the use of type-safe tokens and the ability to map unique identifiers or class constructors to specific service instances. The contain
Implements isolated resolution scopes to prevent data leakage between separate execution flows or users.
MvvmCross ist ein .NET-MVVM-Framework, das für den Aufbau plattformübergreifender Anwendungen durch die Trennung von Geschäftslogik und nativen Benutzeroberflächen entwickelt wurde. Es fungiert als Navigations-Engine und UI-Data-Binding-Bibliothek, die die Kapselung von Logik innerhalb von View-Models ermöglicht, die über verschiedene Betriebssysteme hinweg wiederverwendet werden. Das Framework bietet eine native Hardware-Abstraktionsschicht und einen Dependency-Injection-Container, um Komponenten zu entkoppeln und eine konsistente Schnittstelle für den Zugriff auf Gerätefunktionen bereitzustellen. Es koordiniert typsichere Übergänge zwischen nativen Bildschirmen und verwaltet die Synchronisation von Daten zwischen gemeinsam genutzten Logikklassen und nativen UI-Komponenten durch Property-Change-Benachrichtigungen. Das Projekt deckt ein breites Spektrum an Funktionen ab, einschließlich Anwendungslebenszyklus-Management, URI-Deeplinking und Inversion-of-Control-Service-Registrierung. Es enthält zudem Dienstprogramme für Internationalisierung, Pub-Sub-Messaging über einen Weak-Reference-Event-Aggregator und Hardware-Integration für Sensoren, Geolokalisierung und biometrische Authentifizierung.
Provides nested dependency containers to allow isolated state instances within specific application scopes.