ephemeral_state_manager 1.0.0 copy "ephemeral_state_manager: ^1.0.0" to clipboard
ephemeral_state_manager: ^1.0.0 copied to clipboard

outdated

A package é um gerenciamento de estado efêmero simples e objetivo (é um estado temporário de uma widget), com essa package é possível usar o setState ou streamCotroller de forma segura indicando onde [...]

Ephemeral state manager #

A package é um gerenciamento de estado efêmero simples e objetivo (é um estado temporário de uma widget), com essa package é possível usar o setState ou streamCotroller de forma segura indicando onde deve ser feito a build do widget multável sem re-buildar toda árvore de widget da página ativa exatamente como a documentação da framework recomenda.

  • Não precisa usar annotations para indicar que é uma variável mutável ou observável
  • Não precisa usar gerador de código
  • É necessário disposar apenas as variáveis do tipo Streamcontroller. As que usam setState não precisam
  • Segundo a documentação da framework, ao usarmos um widget com um valor mutável totalmente isolada, que re-builda apenas o necessário, temos uma performance mais otimizada na renderização dos componentes da árvore de widgets

Exemplo de uso #

import 'package:flutter/material.dart';
import 'package:ephemeral_state_manager/src/stateSetterBuilder.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({ Key? key }) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: "App",
      theme: ThemeData(primaryColor: Colors.indigo),
      home: HomePage(),    
    );
  }
}

class HomePage extends StatelessWidget {

  final Controller controller = Controller();

  @override
  Widget build(BuildContext context) {
    print('Create HomaPage build');
    return Scaffold(
      appBar: AppBar(title: Text('Exemplo de uso StateSetterBuilder')),
      body: Center(
        child: Row(
           mainAxisAlignment: MainAxisAlignment.spaceAround,
           children: [
             IconButton(
               icon: Icon(Icons.exposure_neg_1, size: 45.0, color: Theme.of(context).primaryColor), 
               onPressed: controller.decrement,
             ),
             StateSetterBuilder<int>(
               valueStateSetter: controller.counter,
               builder: (context, value){
                 print('Upadate: counter');
                 return Text(
                   '$value',
                   style: Theme.of(context).textTheme.headline4,
                 );
               }
             ),
             IconButton(
               icon: Icon(Icons.exposure_plus_1, size: 45.0, color: Theme.of(context).primaryColor), 
               onPressed: controller.increment,
             ),
           ],
         ),
      ),
    );
  }
}

class Controller {

  final ValueState<int> counter = ValueState<int>(0);

  void increment() => counter.value++;

  void decrement() => counter.value--;

}
7
likes
0
points
37
downloads

Publisher

unverified uploader

Weekly Downloads

A package é um gerenciamento de estado efêmero simples e objetivo (é um estado temporário de uma widget), com essa package é possível usar o setState ou streamCotroller de forma segura indicando onde deve ser feito a build do widget multável sem re-buildar toda árvore de widget da página ativa exatamente como a documentação da framework recomenda.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, meta

More

Packages that depend on ephemeral_state_manager