패키지, 저장소 및 앱 카테고리 검색

패키지 상세v3.0.2

multiple_stream_builder

여러 중첩된 StreamBuilder 위젯을 대체하는 Flutter 위젯

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
3.1천
좋아요
38
Pub 점수
160

패키지 설치

flutter pub add multiple_stream_builder

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

중첩된 StreamBuilder 위젯을 단일하고 깔끔한 위젯으로 대체하여 여러 스트림 작업을 간소화하는 플러터 패키지입니다. 단일 빌드 컨텍스트에서 여러 비동기 데이터 소스를 효율적이고 가독성 있게 처리할 수 있으며, 반복 코드를 줄이고 성능을 향상시킵니다. 실시간 대시보드나 다중 데이터 폼 입력과 같이 여러 스트림에서 동시에 업데이트가 필요한 UI에 적합합니다. 이 패키지는 모든 주요 플랫폼을 지원하며 기존 플러터 코드와 원활하게 통합됩니다.

사용 사례

  • 다중 데이터 피드를 갖춘 실시간 대시보드
  • 여러 스트림에서 실시간 검증이 필요한 양식
  • 다른 소스에서 온 동시 상태 업데이트
  • 다중 스트림 데이터를 위한 단순화된 UI 논리
  • 복잡한 스트림 기반 UI에서 중첩 줄이기

주요 기능

  • 여러 스트림을 관리하는 단일 위젯
  • 중첩된 StreamBuilder의 복잡성을 제거합니다
  • 최소한의 오버헤드로 효율적인 재빌드
  • 모든 플러터 플랫폼을 지원합니다
  • 스트림 처리를 위한 깔끔하고 가독성 높은 구문

적합한 대상

  • 여러 비동기 데이터 소스를 관리하는 개발자
  • 더 깔끔한 UI 코드를 찾는 팀
  • 복잡한 실시간 데이터 요구사항을 가진 프로젝트
  • 반응형 패턴을 사용하는 Flutter 앱
  • 위젯 트리 깊이를 줄이고자 하는 사람

고려 사항

  • Stream 및 StreamBuilder의 기본 사항을 이해해야 합니다
  • 패키지 크기가 약간 증가할 수 있습니다
  • 2개 이상의 동시 스트림이 필요한 경우에 가장 적합
  • 간단한 단일 스트림 시나리오에는 적합하지 않음
  • 스트림 기반 데이터 소스에 한정

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

multiple_stream_builder

Flutter widgets to replace multiple nested StreamBuilder widgets

Installing

To add use this package in your Flutter project add this to your pubspec.yml

dependencies:
  multiple_stream_builder: ^3.0.0

Usage example

var stream1 = Stream<int>.periodic(Duration(seconds: 1), (x) => x);
var stream2 = Stream<int>.periodic(Duration(seconds: 2), (x) => x);
var stream3 = Stream<int>.periodic(Duration(seconds: 3), (x) => x);

// Instead of writing out nested StreamBuilders
Widget build(BuildContext context) {
  return StreamBuilder<int>(
    stream: stream1,
    initialData: 0,
    builder: (context, snapshot1) {
      return StreamBuilder<int>(
        stream: stream2,
        initialData: 0,
        builder: (context, snapshot2) {
          return StreamBuilder<int>(
            stream: stream3,
            initialData: 0,
            builder: (context, snapshot3) {
              return Text(
                'stream1: ${snapshot1.data} - stream2: ${snapshot2.data} - stream3: ${snapshot3.data}',
              );
            },
          );
        },
      );
    },
  );
}

// Pass multiple streams into a single StreamBuilder
Widget build(BuildContext context) {
  return StreamBuilder3<int, int, int>(
    streams: StreamTuple3(stream1, stream2, stream3),
    initialData: InitialDataTuple3(0, 0, 0),
    builder: (context, snapshots) {
      return Text(
        'stream1: ${snapshots.snapshot1.data} - stream2: ${snapshots.snapshot2.data} - stream3: ${snapshots.snapshot3.data}',
      );
    },
  );
}

카테고리

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.