june 0.7.5 june: ^0.7.5 copied to clipboard
Simple State Manager is all you need
Simple is all you need #
Why use complex and bulky state management?
What you need is very simple, but it's a state management that satisfies you 100% when making an app.
And that state management is right here.
June #
June is an easy-to-use and intuitive lightweight state management library that has all the features needed when creating an app.
Usage #
- Declare the states.
class CounterVM extends JuneDataClass {
int count = 0;
}
- The state management wraps the widget to be managed with JuneUpdater.
JuneUpdater(
() => CounterVM(),
child: (vm) => Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('${vm.count}'
),
],
),
)
- Update the states using the June.get method.
var viewModel = June.get(CounterVM());
viewModel.count++;
viewModel.update();
- That's All!
Example #
import 'package:flutter/material.dart';
import 'package:june/june.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: JuneUpdater(
() => CounterVM(),
child: (vm) => Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
const Text('You have pushed the button this many times:'),
Text(
'${vm.count}',
style: Theme.of(context).textTheme.headlineMedium,
),
],
),
),
),
floatingActionButton: const FloatingActionButton(
onPressed: incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),
),
),
);
}
}
void incrementCounter() {
var viewModel = June.get(CounterVM());
viewModel.count++;
viewModel.update();
}
class CounterVM extends JuneDataClass {
int count = 0;
}