feat: 기능 추가 과정중
This commit is contained in:
@@ -29,7 +29,7 @@ RP-04 이후 route runtime과 RP-06 page/form platform에는 다음 장점이
|
||||
- reference feature의 list/detail/create/status route가 네 template variation을
|
||||
production composition에서 실행한다.
|
||||
|
||||
platform route 계약, `src/features/installed-feature-contracts.js`,
|
||||
platform route 계약, `src/features/installed-feature-contracts.ts`,
|
||||
`src/features/installed-feature-runtimes.tsx`의 완전성은 TypeScript와 registry
|
||||
negative fixture가 함께 검사한다. params/search codec, loading/error surface,
|
||||
access, title, navigation, chunk ID는
|
||||
@@ -37,6 +37,13 @@ access, title, navigation, chunk ID는
|
||||
manifest의 dynamic entry는 release manifest route chunk map과 검증되며,
|
||||
`ChunkRecoveryBoundary`는 일반 render error와 chunk rejection을 분리한다.
|
||||
|
||||
route ID와 parsed input type은 `route-contract.ts`, parse/canonical URL 생성은
|
||||
`route-codecs.ts`, React context/provider/hook은 `route-input.tsx`가 소유한다.
|
||||
router는 codec 결과를 provider에 넣고 lazy feature page는 좁은
|
||||
`useRouteInput()`만 소비한다. 이 분리로 feature runtime이 자신을 load하는
|
||||
`app-router.tsx`를 역참조하지 않으며, 같은 유형의 TypeScript 순환 의존은
|
||||
architecture graph fixture가 거절한다.
|
||||
|
||||
template는 데이터를 가져오지 않는다. reference page controller가 route input과
|
||||
application input을 query/form facade에 연결하고, template에는 render할 slot과
|
||||
안전한 callback만 전달한다. 이 분리는
|
||||
@@ -391,10 +398,8 @@ page view
|
||||
|
||||
```tsx
|
||||
export function ResourceListRoute() {
|
||||
const input = useRouteInput(resourceListRoute);
|
||||
if (!input.ok) return <InvalidRouteSurface failure={input.error} />;
|
||||
|
||||
return <ResourceListController input={input.value} />;
|
||||
const input = useRouteInput();
|
||||
return <ResourceListController input={input} />;
|
||||
}
|
||||
|
||||
function ResourceListController({ input }: ResourceListControllerProps) {
|
||||
@@ -403,7 +408,8 @@ function ResourceListController({ input }: ResourceListControllerProps) {
|
||||
}
|
||||
```
|
||||
|
||||
route parse boundary와 controller component를 분리하므로 controller hook은
|
||||
router의 parse/invalid-route boundary가 성공한 `ParsedRouteInput`만 provider에
|
||||
넣고, page controller는 그 context를 바로 읽는다. 따라서 controller hook은
|
||||
조건부로 호출되지 않는다.
|
||||
|
||||
controller가 소유하는 것:
|
||||
|
||||
Reference in New Issue
Block a user