vuex4flutter 0.0.2-dev copy "vuex4flutter: ^0.0.2-dev" to clipboard
vuex4flutter: ^0.0.2-dev copied to clipboard

outdated

Vuex4Flutter is a state management pattern that provides a VueX like interface. Super lightweight and more important, testable!

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:vuex4flutter/vuex4flutter.dart';

import 'store.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Home(),
    );
  }
}

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Vuex4FlutterProvider(
      store: MyStore(),
      child: Scaffold(
        appBar: AppBar(
          title: Text('Title'),
        ),
        body: Content(),
        floatingActionButton: Fab(),
      ),
    );
  }
}

class Content extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Vuex4FlutterConnector(builder: (context, store) {
      final isEmpty = store.getter('/cart/isEmpty');
      final isFetching = store.getter('/cart/isFetching');

      return Center(
        child: isFetching
            ? CircularProgressIndicator()
            : Text('The cart is empty: $isEmpty'),
      );
    });
  }
}

class Fab extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return FloatingActionButton(
      child: Icon(Icons.add),
      onPressed: fetchItems,
    );
  }

  Future<void> fetchItems() {
    final store = Vuex4FlutterProvider.store;
    return store.dispatch('/cart/FetchCartItemsAction');
  }
}
1
likes
35
pub points
0%
popularity

Publisher

unverified uploader

Vuex4Flutter is a state management pattern that provides a VueX like interface. Super lightweight and more important, testable!

Repository (GitHub)
View/report issues

License

BSD-3-Clause (LICENSE)

Dependencies

flutter, get_it, rxdart

More

Packages that depend on vuex4flutter