Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev2.3.0

vxstate

VxState é outra solução de gerenciamento de estado para o flutter. É altamente inspirado no Redux e no VueX.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
5,8 mil
Curtidas
31
Pontos Pub
160

Instalar pacote

flutter pub add vxstate

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

VxState é uma solução de gerenciamento de estado para Flutter, inspirada no Redux e no VueX. Ele fornece um armazenamento centralizado e previsível para gerenciar o estado da aplicação com um fluxo de dados unidirecional. Projetado para escalabilidade e simplicidade, oferece atualizações reativas e integra-se bem com a árvore de widgets do Flutter. O VxState enfatiza arquitetura limpa e experiência do desenvolvedor por meio de APIs concisas e padrões consistentes. Funciona em todas as principais plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux.

Casos de uso

  • Gerenciando o estado global do aplicativo
  • Implementando mudanças de estado previsíveis
  • Dimensionando aplicativos grandes do Flutter
  • Integração com interfaces de usuário reativas
  • Simplificando a lógica de estado complexa
  • Apoio a aplicativos multiplataforma

Principais recursos

  • Fluxo de dados unidirecional semelhante ao Redux
  • Estrutura de armazenamento inspirada no VueX
  • Atualizações de estado reativas
  • Compatibilidade multiplataforma
  • API limpa e minimalista
  • Suporte a ferramentas de desenvolvimento integradas

Indicado para

  • Desenvolvedores familiarizados com Redux ou VueX
  • Equipes construindo aplicativos Flutter em grande escala
  • Projetos que exigem gerenciamento de estado previsível
  • Aplicativos que precisam de capacidades fortes de depuração
  • Desenvolvedores valorizando consistência e estrutura

Considerações

  • Pode ter uma curva de aprendizado mais acentuada para iniciantes
  • Requer conhecimento sobre padrões de estado
  • Excesso para aplicativos muito simples
  • Recursos limitados da comunidade em comparação com alternativas populares
  • Menos adotado do que o Provider ou o Riverpod

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

VxState

VxState is a state management library built for Flutter apps with focus on simplicity. It is inspired by StoreKeeper & libraries like Redux, Vuex etc with the power of streams. Here is a basic idea of how it works:

  • Single Store (Single source of truth) to keep app's data
  • Structured modifications to store with Mutations
  • Widgets listen to mutations to rebuild themselves
  • Enhance this process with Interceptors and Effects

Core of VxState is based on the InheritedModel widget from Flutter.

Getting started

Add to your pubpsec:

dependencies:
  ...
  vxstate: any

Create a store:

import 'package:vxstate/vxstate.dart';

class MyStore extends VxStore {
  int count = 0;
}

Define mutations:

class Increment extends VxMutation<MyStore> {
  perform() => store.count++;
}

Listen to mutations:

@override
Widget build(BuildContext context) {
  // Define when this widget should re render
  VxState.watch(context, on: [Increment]);

  // Get access to the store
  MyStore store = VxState.store as MyStore;

  return Text("${store.count}");
}

Complete example:

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

// Build store and make it part of app
void main() {
  runApp(VxState(
    store: MyStore(),
    child: MyApp(),
  ));
}

// Store definition
class MyStore extends VxStore {
  int count = 0;
}

// Mutations
class Increment extends VxMutation<MyStore> {
  perform() => store.count++;
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // Define when this widget should re render
    VxState.watch(context, on: [Increment]);

    // Get access to the store
    MyStore store = VxState.store as MyStore;

    return MaterialApp(
      home: Scaffold(
        body: Column(
          children: <Widget>[
            Text("Count: ${store.count}"),
            RaisedButton(
              child: Text("Increment"),
              onPressed: () {
                // Invoke mutation
                Increment();
              },
            ),
          ],
        ),
      ),
    );
  }
}

Documentation

  • VxStore - Where your apps's data is kept
  • VxMutation - Logic that modifies Store
  • VxBuilder, VxNotifier, VxConsumer - Useful widgets for special cases
  • VxEffect - Chained mutations
  • VxInterceptors - Intercept execution of mutations

Categorias

Repositório-fonte

Projetos que usam este pacote