reactivity

Last updated:

0 purchases

reactivity Image
reactivity Images
Add to Cart

Description:

reactivity

O Reactive é um gerenciador de estado dinâmico fundamentado em Singleton que permite o gerenciamento de
variáveis de forma global, orientada a condições, orientada a estados e principalmente de forma reativa.
A curva de aprendizado é muitocurta assim como a implementação, mas ainda assim é possível realizar
implementações mais robutas que resultam em um maior controle e em uma maior performance.
Features #
refresh(dynamic dependency):
Notifica um ouvinte específico para atualizar seu estado.
statusOf(String key):
Retorna o status de um Worker.
setStatus(String key, dynamic status):
Define o status de um Worker.
Getting started #
O Reactive não necessita de setup apenas instale o package e use onde precisar! :)
Usage #

enum ExampleStatus {
loading,
sucess,
fail,
}

class MyController {
List<String> myExamples = [];
int counter = 0;

myFunction() {
setStatus(ExampleStatus.loading);
return http.get("/examples")
.then((examples) {
myExamples = examples;
refreshStatus(ExampleStatus.sucess); //status da requisição alterado para sucesso e atualiza os componentes de tela reativos
}).catchError((err) {
refreshStatus(ExampleStatus.fail); //status da requisição alterado para falha e atualiza os componentes de tela reativos
});
}

count() {
counter++;
refresh(); //atualiza os componentes de tela reativos
}
}

class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;

@override
State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
MyController myController = MyController();

@override
void initState() {
super.initState();
myController.myFunction();
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Reactive(() => Text("Counter: ${myController.counter}")), // deixa o texto reativo
),
body: ReactiveStatus<ExampleStatus>(// pertime que a tela seja reativa e que altere seus componentes com base no status
{
ExampleStatus.sucess: () => ExampleListView(items: myController.myExamples),// mostra a lista caso seja sucess
ExampleStatus.fail: () => const Text(" fail :( "),// mostra a erro caso seja fail
ExampleStatus.loading: () => const CircularProgressIndicator(),// mostra um ProgressIndicator caso seja loading
},
),
floatingActionButton: FloatingActionButton(
onPressed: myController.count,
child: const Icon(Icons.add),
),
);
}
}

copied to clipboard
Additional information #
Me chamo Felipe Kaian, sou o autor deste pacote, vocês podem me econtrar no LinkedIn ou
através do email [email protected], podem trazer melhorias, sugestões e feedbacks,
quanto mais melhor, espero que esse pacote ajude nossa comunidade Flutter a crescer cada vez mais!

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.