Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.2.4

stacked_hooks

Classes que ajudam você a usar ganchos ao usar o pacote stacked

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
6,9 mil
Curtidas
70
Pontos Pub
140

Instalar pacote

flutter pub add stacked_hooks

Visão geral do pacote

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

Stacked Hooks é um pacote Flutter que expande a arquitetura Stacked fornecendo classes utilitárias para integrar de forma transparente os hooks do estilo React ao seu fluxo de gerenciamento de estado. Permite que desenvolvedores utilizem hooks como useState, useEffect e useStream dentro dos modelos de visualização do Stacked, promovendo código mais limpo e modular. Projetado para desenvolvedores já usando o pacote Stacked, simplifica o gerenciamento de estado em componentes da interface sem exigir uma reescrita completa da lógica existente. O pacote suporta todas as principais plataformas, garantindo comportamento consistente em Android, iOS, Web, macOS, Windows e Linux.

Casos de uso

  • Construindo interfaces reativas com pouco código repetitivo
  • Gerenciando estado local em modelos de visualização empilhados
  • Simplificando efeitos colaterais com lógica semelhante ao useEffect
  • Integrando fluxos e operações assíncronas
  • Criando widgets com estado reutilizáveis
  • Melhorando a manutenibilidade de visualizações complexas

Principais recursos

  • Utilidades de gancho embutidas para Stacked
  • Suporte para useState, useEffect, useStream
  • Integração contínua com a arquitetura Stacked
  • Compatibilidade multiplataforma
  • Configuração mínima necessária
  • API segura por tipo e intuitiva

Indicado para

  • Desenvolvedores usando o pacote Stacked
  • Equipes que buscam uma gestão de estado mais limpa
  • Aplicativos Flutter com lógica de UI complexa
  • Projetos com foco em reduzir o código repetitivo
  • Pessoas familiarizadas com React Hooks
  • Aplicativos direcionados a múltiplas plataformas

Considerações

  • Requer o pacote Stacked
  • Limitado a projetos baseados em pilha
  • Pode exigir curva de aprendizado para novos usuários do gancho
  • Não adequado para arquiteturas não empilhadas
  • Melhor usado em aplicativos de médio a grande escala
  • Depende do tratamento assíncrono e de fluxos do Dart

README original

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

Stacked Hooks

This package contains widgets that allow you to use the Flutter Hooks package with the StackedView in the Stacked architecture.

StackedHookView

The StackedView is an implementation of a widget class that returns a value provided by Provider as a parameter in the build function of the widget. This allows for easier consumption and use of ViewModel without boilerplate. The StackedHookView allows you to use this widget and make use of Flutter Hooks inside the build function. This is very useful when you want to use TextEditing controllers and you're implementing this architecture.

// View that creates and provides the viewmodel
class StackedHookViewExample extends StackedView<HomeViewModel> {
  const StackedHookViewExample({Key key}) : super(key: key);

  @override
  Widget builder(BuildContext context, HomeViewModel model, Widget? child) {
    return Scaffold(
      body: Center(child: _HookForm()),
    );
  }

  @override
  HomeViewModel modelBuilder(BuildContext context) {
    return HomeViewModel();
  }
}

// Form that makes use of the ViewModel provided above but also makes use of hooks
class _HookForm extends StackedHookView<HomeViewModel> {
  @override
  Widget buildStackedView(BuildContext context, HomeViewModel model) {
    final title = useTextEditingController();
    return Column(
      mainAxisSize: MainAxisSize.min,
      children: <Widget>[
        Text(model.title),
        TextField(controller: title, onChanged: model.updateTitle),
      ],
    );
  }
}

// ViewModel
class HomeViewModel extends BaseViewModel {
  String title = 'default';

  void updateTitle(String value) {
    title = value;
    notifyListeners();
  }
}

Categorias

Dependências

Lista de dependências 2 itens

Repositório-fonte

Projetos que usam este pacote