riverpod-select

Installation
SKILL.md

Riverpod — Reducing rebuilds with select

Instructions

By default, ref.watch(provider) rebuilds whenever the provider's value changes (by reference/equality). If you only use a subset of the state (e.g. one field of a User), the widget still rebuilds when other fields change.

Use select to watch only a part of the state. Rebuilds happen only when the selected value changes (by ==).

Syntax

// Rebuild only when firstName changes
String name = ref.watch(provider.select((it) => it.firstName));
return Text('Hello $name');

You can call select multiple times for different properties. The selected value should be immutable; mutating a returned List/object in place will not trigger a rebuild.

Async providers: selectAsync

Related skills

More from serverpod/skills-registry

Installs
19
GitHub Stars
8
First Seen
Mar 20, 2026