Skip to content

fix: framework adapter의 selector 구독 동작 통일 #12

Description

@ayden94

문제 정의

React adapter는 selector 결과에 shallow 비교를 적용하지만 Vue, Angular, Solid, Svelte는 서로 다른 반응성 경로를 사용합니다. framework별 불필요한 알림과 selector 의미 차이를 줄이기 위해 공통 구독 계약이 필요합니다.

작업 범위

  • @ilokesto/store의 selector 구독 API 사용
  • plain state와 reducer state의 selector 동작 통일
  • 관련 없는 상태 변경 시 selector consumer 알림 생략
  • framework lifecycle cleanup과 React SSR snapshot 유지
  • 각 framework의 반응성 모델에 맞는 구현은 허용하되 public 의미는 통일

제외 범위

  • 새로운 adapter public API
  • reducer dispatch 변경
  • framework 전용 상태 primitive 추가

완료 조건

  • React, Vue, Angular, Solid, Svelte의 selector 회귀 테스트 추가
  • 객체 selection의 shallow 비교 계약 문서화
  • 관련 없는 상태 변경에서 consumer 갱신이 발생하지 않음
  • plain/reducer adapter가 동일하게 동작
  • lifecycle cleanup 및 SSR 테스트 유지
  • changeset과 migration 문서 추가

검증

pnpm typecheck
pnpm test
pnpm test:typecheck
pnpm build

의존 관계

Blocked by: ilokesto/store#10

store의 selector 구독 버전이 실제 배포된 뒤 진행합니다. 현재 열려 있는 PR #8의 CI/충돌 상태도 구현 전에 정리합니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions