Comunidade

Dicas de Desempenho e Arquitetura

O texto destaca dicas sobre otimização e arquitetura no uso de Riverpod para gerenciamento de estado em aplicações Flutter. Ele aborda técnicas como reutilização de cache com múltiplos widgets acessando o mesmo provedor, invalidação de provedores familiares específicos ou totais, além da utilização eficiente de registros do Dart 3 com provedores familiares para parâmetros múltiplos.

Compartilhar
Medium

5. Dicas de Desempenho e Arquitetura

Reutilização do Cache

Vários widgets podem acessar o mesmo provedor:

ref.watch(
productsByCategoryProvider(
cat.id,
),
);

A API é executada apenas uma vez.

Riverpod reutiliza o resultado do cache.

Invalidando Provedores de Família

Invalidar um parâmetro específico:

ref.invalidate(
productsByCategoryProvider(
'electronics',
),
);

Invalidar toda a família:

ref.invalidate(
productsByCategoryProvider,
);

Múltiplos Parâmetros com Registros

Os registros do Dart 3 funcionam perfeitamente com family.

final filteredProductsProvider =
FutureProvider.family<
List<Product>,
(String, SortOrder)
>((ref, params) {
final (
categoryId,
sortOrder,
) = params;
return ref
.read(
productRepositoryProvider,
)
.fetchByCategory(
categoryId,
sortBy: sortOrder,
);
});

Uso:

ref.watch(
filteredProductsProvider(
(
'electronics',
SortOrder.newest,
),
),
);

Os registros usam igualdade de valor, tornando-os ideais para provedores de família.

Fonte original

Conteúdo traduzido e adaptado pela redação do Notícias Mobile. Confira também a matéria na fonte original.

Leia a matéria completa