Summary
Investigate the latest React library primitives (React 18/19) that could be leveraged to enhance easy-peasy's performance and capabilities.
Areas to Investigate
useSyncExternalStore — already adopted, but review if usage can be optimized further
useTransition / startTransition — potential for non-blocking state updates in thunks or actions
useDeferredValue — could benefit computed properties or expensive selectors
use() hook (React 19) — potential for async state resolution, e.g. thunk results or persistence hydration
useOptimistic (React 19) — potential for optimistic UI patterns alongside actions/thunks
useActionState (React 19) — review if this could complement or simplify action dispatching
React.cache / React.memo enhancements — potential improvements for computed property memoization
- React Server Components compatibility — ensure easy-peasy works correctly in RSC environments
Goals
- Identify primitives that could improve rendering performance (fewer re-renders, better batching)
- Identify primitives that unlock new capabilities or simplify existing patterns
- Ensure continued compatibility with React 18 and 19
- Document findings and propose concrete changes if applicable
Summary
Investigate the latest React library primitives (React 18/19) that could be leveraged to enhance easy-peasy's performance and capabilities.
Areas to Investigate
useSyncExternalStore— already adopted, but review if usage can be optimized furtheruseTransition/startTransition— potential for non-blocking state updates in thunks or actionsuseDeferredValue— could benefit computed properties or expensive selectorsuse()hook (React 19) — potential for async state resolution, e.g. thunk results or persistence hydrationuseOptimistic(React 19) — potential for optimistic UI patterns alongside actions/thunksuseActionState(React 19) — review if this could complement or simplify action dispatchingReact.cache/React.memoenhancements — potential improvements for computed property memoizationGoals