React Patterns with CNStra
Common patterns to use CNStra from React.
Stimulate on mount or on deps change
const [result, stimulate] = useNeuron(myNeuron);
useEffect(() => {
stimulate({ userId });
}, [userId]);
Keep UI responsive with abort
Use the AbortSignal
supported by CNStra to cancel in-flight runs.
const controller = useRef<AbortController>();
const [data, stimulate] = useNeuron(searchNeuron);
function onSearch(q: string) {
controller.current?.abort();
controller.current = new AbortController();
stimulate(q, { abortSignal: controller.current.signal });
}
Derive UI lists via OIMDB
Use OIMDB for queryable derived state (dashboards, analytics) and subscribe via hooks.
const items = useSelectEntitiesByIndexKey(db.tables.logs, 'byType', 'warning');
Error and loading states
const [user, stimulate, status] = useNeuron(fetchUserNeuron);
// status: { loading: boolean, error?: unknown }
Testing
- Mock
useNeuron
outputs for components - Prefer unit tests for neurons and a smaller set of integration tests for flows