scoper 0.0.2+1 icon indicating copy to clipboard operation
scoper: ^0.0.2+1 copied to clipboard

A minimal state management solution for Flutter.

Scoper #

A minimal state management solution for Flutter. #


How to use: #

Create custom ExampleScope by extending Scope. Use notifiyBuilders() to trigger rebuild of ScopeBuilder<ExampleScope>. Use notifiyExecutors() to trigger execution of ScopeExecutor<ExampleScope>.

class CounterScope extends Scope {
  int _counter = 0;
  int _divider = 7;

  increment() {
    _counter++;
    notifiyBuilders();

    if(_counter % _divider == 0) {
      notifiyExecutors();
    }
  }

  get counter => _counter;
  get divider => _divider;
}

Register your scopes by passing them to a ScopeRegistrant at the root of the widget-tree.

ScopeRegistrant(
    scopes: [
        CounterScope(),
        ExampleScope(),
    ],
    child: Container(
      child: (...)
    ),
)

Use a ScopeBuilder<ExampleScope> to build widgets depending on the given scope.

ScopeBuilder<CounterScope>(
    builder: (context, scope) {
        return Text(scope.counter.toString());
    },
),

Use a ScopeExecutor<ExampleScope> to execute certain logic depending on the given scope.

ScopeExecutor<CounterScope>(
    executor: (context, scope) {
      final message = "This number is divisible by " + scope.divider.toString();
      final snackbar = SnackBar(content: Text(message));
      ScaffoldMessenger.of(context).showSnackBar(snackbar);
    },
    child: Container(
      child: (...)
    ),
)

Use get<ExampleScope> to get a scope from context and call it's methods (for example in onPressed).

context.get<CounterScope>().increment(),

Open for contribution and feedback! 😄

4
likes
120
pub points
0%
popularity

Publisher

unverified uploader

A minimal state management solution for Flutter.

Homepage

Documentation

API reference

License

Icon for licenses.MIT (LICENSE)

Dependencies

flutter

More

Packages that depend on scoper