محمدامین طالبی
محمدامین طالبی
خواندن ۱ دقیقه·۱۲ روز پیش

توضیح کوتاه روش پیاده سازی BLoC

استفاده از BLoC با Http:


1. ساخت بلاک استیت: تعریف وضعیت‌های مختلف مانند Loading, Loaded, Error

2. ساخت بلاک ایونت: تعریف رویدادها مانند FetchUserEvent.

3. پیاده‌سازی بلاک: اتصال Event و State با استفاده از پکیج BLoC.



جزئیات Event:

- هر Event می‌تواند وضعیت (State) را تغییر دهد.

- در Event می‌توان به ریپازیتوری و ورودی‌های فانکشن (event) دسترسی داشت.

- Event دو متغیر دارد:

- emit: مقداردهی به وضعیت جدید.

- event: ورودی داده‌ای مربوط به رویداد.



عملکرد emit:

- هر وضعیت جدید با استفاده از emit به UI ارسال می‌شود.



سازوکار BLoC:

- Event ورودی رویدادها را مدیریت می‌کند.

- State وضعیت‌های جاری برنامه را نمایش می‌دهد.

- BLoC مسئول اتصال Event و State است و وضعیت جدید را با emit ارسال می‌کند.



نمونه پیاده‌سازی:

```dart

class UserBloc extends Bloc<UserEvent, UserState> {

final UserRepository userRepository;



UserBloc(this.userRepository) : super(UserInitial()) { // به کلاس state دادن ورودی به کلاس و دادن اولین

حالا میتونیم ایونت هارو صدا بزنیم داخل این اسکوپ //

برای مثال : //

on<FetchUserEvent>((event, emit) async {

emit(UserLoading()); // (تغییر وضعیت (وضعیت قبلی پاک و وضعیت جدید جایگزین میشه

try {

final user = await userRepository.fetchUser(event.userId);

emit(UserLoaded(user)); // تغییر وضعیت

} catch (e) {

emit(UserError(e.toString())); // تغییر وضعیت

}

});

}

}


flutterمعماری
شاید از این پست‌ها خوشتان بیاید