Управление состояниями провайдера во Flutter — часть 1

Почему управление состоянием важно?

Управление состоянием приложения — это процесс поддержания знаний о входных данных приложения в нескольких связанных потоках данных, которые образуют полную бизнес-транзакцию или сессию, чтобы понять состояние приложения в любой момент времени. В информатике входные данные — это информация, вводимая пользователем в программу, а состояние — это состояние приложения в соответствии с сохраненными входными данными, сохраненными в виде переменных или констант. Состояние также может быть описано как коллекция сохраненной информации, которая формирует полный сеанс. Таким образом, без некоторой формы управления состоянием производительность приложения будет снижаться.

Преимущества управления состоянием:
1- Состояние всего приложения находится в одном месте, поэтому нам не нужно обращаться к одному состоянию или данным из разных мест.
2- Уменьшает количество HTTP-запросов, отправляемых на back-end для получения и извлечения данных.
3- помогает централизовать и упростить обслуживание кода, а также улучшает качество кода, уменьшая его размер и делая его более читабельным.

Значит, я должен использовать управление состояниями в каждом приложении, верно?

Мы не можем так утверждать.
Если: данных в приложении мало и приложение маленькое => то не стоит использовать управление состояниями.

Что такое провайдер?
Пакет provider — это простой в использовании пакет, который по сути является оберткой вокруг унаследованных виджетов, что упрощает его использование и управление. Он предоставляет технику управления состоянием, которая используется для управления частью данных вокруг приложения.

Давайте создадим приложение и узнаем, как реализовать Provider в приложении счетчика по умолчанию?

flutter create provider_state_management

Добавьте зависимость для шаблона провайдера в файл pubspec.yaml.

dependencies:
  flutter:
    sdk: flutter
  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^1.0.2
  provider: ^6.0.3
Вход в полноэкранный режим Выход из полноэкранного режима

Создайте модель и добавьте метод для увеличения счетчика, расширьте ChangeNotifier из пакета material.dart. Это предоставит нам метод notifyListeners(), который будет уведомлять всех слушателей всякий раз, когда мы изменяем значение.

import 'package:flutter/material.dart';

class Counter with ChangeNotifier {
  int counter = 0;
  // int get_Counter() => counter;

  void incrementCounter() {
    counter++;
    notifyListeners();
  }
}
Вход в полноэкранный режим Выход из полноэкранного режима

оберните ваш виджет home / materialApp виджетом ChangeNotifierProvider<YOUR_MODEL_NAME>.

@override
  Widget build(BuildContext context) {
    return  ChangeNotifierProvider<Counter>(
       create: (context) => Counter(),
      child: MaterialApp(
        title: 'Flutter Demo',
        theme: ThemeData(
          primarySwatch: Colors.blue,
        ),
        home:MyHomePage(),
    ),
    );
  }
Войдите в полноэкранный режим Выйти из полноэкранного режима

Чтобы обновить текст, вызовите переменные и функцию из Своей модели, чтобы использовать их
оберните ваш текстовый виджет виджетом Consumer<YOUR_MODEL_NAME>

  Consumer<Counter>(
              builder:(context, count, child) => Text(
                '${count.counter}',
                style: Theme.of(context).textTheme.headline4,
              )
            ),
Войдите в полноэкранный режим Выйти из полноэкранного режима

Исходный код: ветвь » master «

прочитайте эту статью для более подробной информации :

Dev : https://dev.to/eman55555/provider-state-management-in-flutter-part-1-e4k

Medium : https://medium.com/@emanhamad55555/provider-state-management-in-flutter-part-1-b3fcb9fd2226

provider_state_management

Новый проект Flutter.

Начало работы

Этот проект является отправной точкой для создания приложения Flutter.

Несколько ресурсов, которые помогут вам начать работу, если это ваш первый проект Flutter:

  • Лаборатория: Напишите свое первое приложение Flutter
  • Кулинарная книга: Полезные примеры Flutter

Чтобы получить помощь в начале разработки Flutter, просмотрите онлайн-документацию, которая предлагает учебники, примеры, руководство по мобильной разработке и полный справочник по API.

Посмотреть на GitHub

Поздравляем 🥳🤩.
вы реализовали Provider в Default Flutter Counter App!
запуск:

google.com

Хорошо, в чем разница между ValueNotifier, ChangeNotifier и StateNotifier?

С другой стороны, StateNotifier — это неизменяемое решение для управления состоянием, где состояние может быть изменено непосредственно только внутри нотификатора.

Таким образом, мы можем реализовать ValueNotifier на том же приложении счетчика.

Исходный код: ветка » Value_Notifier «

eman55555 / provider_state_management

прочитайте эту статью для более подробной информации:

Dev : https://dev.to/eman55555/provider-state-management-in-flutter-part-1-e4k

Medium : https://medium.com/@emanhamad55555/provider-state-management-in-flutter-part-1-b3fcb9fd2226

provider_state_management

Новый проект Flutter.

Начало работы

Этот проект является отправной точкой для создания приложения Flutter.

Несколько ресурсов, которые помогут вам начать работу, если это ваш первый проект Flutter:

  • Лаборатория: Напишите свое первое приложение Flutter
  • Кулинарная книга: Полезные примеры Flutter

Чтобы получить помощь в начале разработки Flutter, просмотрите онлайн-документацию, которая предлагает учебники, примеры, руководство по мобильной разработке и полный справочник по API.

Посмотреть на GitHub

Оцените статью
devanswers.ru
Добавить комментарий