nstater 0.0.3 copy "nstater: ^0.0.3" to clipboard
nstater: ^0.0.3 copied to clipboard

NStater is a minimal and fast way to manage state in Flutter. You control the lifecycle of controllers and reactive values yourself, using your own types and subscriptions.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:nstater/ncontroller.dart';
import 'package:nstater/nfield.dart';
import 'package:nstater/nstate.dart';
import 'package:nstater/nvar.dart';

void main() {
  runApp(MaterialApp(title: 'Flutter Demo', home: const MyHomePage()));
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return NState(
      create: () => ExampleController(),
      builder:
          (ExampleController ctl) => Scaffold(
            appBar: AppBar(
              backgroundColor: Theme.of(context).colorScheme.inversePrimary,
              title: Text('NStater Example'),
            ),
            body: Center(
              child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  const Text('You have pushed the button this many times:'),
                  NField(
                    data: ctl.counter,
                    builder: (data) => Text('$data', style: Theme.of(context).textTheme.headlineMedium),
                  ),
                  SizedBox(height: 16),
                  const Text('You have pushed the button this many times after update:'),
                  Text('${ctl.counter.value}', style: Theme.of(context).textTheme.headlineMedium),
                ],
              ),
            ),
            floatingActionButton: Row(
              mainAxisSize: MainAxisSize.min,
              children: [
                FloatingActionButton(onPressed: ctl.increment, tooltip: 'Increment', child: const Icon(Icons.add)),
                SizedBox(width: 16),
                FloatingActionButton(onPressed: ctl.updateCtl, tooltip: 'Update', child: const Icon(Icons.update)),
              ],
            ),
          ),
    );
  }
}

class ExampleController extends NController<ExampleController> {
  NVar<int> counter = NVar(0);

  /// this method increment [counter] and rebuild NField widget where [counter] is used
  void increment() {
    counter.value++;
  }

  /// this method rebuild child widget
  void updateCtl() {
    update();
  }
}
0
likes
0
points
23
downloads

Publisher

verified publisherntk-team.space

Weekly Downloads

NStater is a minimal and fast way to manage state in Flutter. You control the lifecycle of controllers and reactive values yourself, using your own types and subscriptions.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on nstater