@TemichDev

Flutter как понять Provider?

Добрый день, есть пару вопросов по поводу Flutter, в частности Provider. С какого то момента перешёл на flutter из c#. При изучение и работы со state остановился на provider, не понял концепцию BLoC (пытался, но не понравилось), которую использует некоторые ребята на проекте. Можете объяснить в чём же разница? BLoC же вытекает из того же Provider. Просто концепция Provider, мне очень понятна и легка чем BLoC и другие аналоги.
Второй вопрос, который только не давно возник это, в чём разница использование ValueNotifier и обычного ChangeNotifier?

Вот как например выглядит в сервис который пишу
class ServiceA extends ChangeNotifier{
  List<Order> orders = [];

  Future<void> getOrders() async{
    //запрос и обработка
    orders = data.list(); 
    notifyListeners();
  }

}

// и после можно получить данные в виджетах
// вот так: serviceA.orders;


По идеи можно реализовать по другому

class ServiceB extends ValueNotifier<ServiceBValue>{
  ServiceB() : super(const ServiceBValue());

  Future<void> getOrders() async{
    //запрос и обработка
    value = value.copyWith(orders:data.list());
  }

}

class ServiceBValue{
  final List<Order> orders = [];
  
  const ServiceBValue({this.orders = []});

  ServiceBValue copyWith({List<Order>? orders}){
    return ServiceBValue(
     orders: orders ?? this.orders
    );
  }
}
// и после можно получить данные в виджетах
// вот так: serviceA.value.orders;


Последний метод реализации увидел в библиотеке video_player

Там выглядит контроллер так:
VideoPlayerController extends ValueNotifier<VideoPlayerValue> {
...
...
...
}


В чём разница? В чём подвох? Ни как не могу найти нормального ответа)
Заранее спасибо)
  • Вопрос задан
  • 39 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
30 апр. 2024, в 16:03
2500 руб./за проект
30 апр. 2024, в 15:24
3000 руб./за проект
30 апр. 2024, в 15:11
500 руб./в час