<Routes>의 자식 컴포넌트로 <Route>를 사용함.<Route>에는 path와 element prop이 필요함. element prop에는 렌더링하고자 하는 컴포넌트의 인스턴스를 할당해야함.
- 이는 React 전반에 걸친 이야기입니다. 컴포넌트의 참조(reference)와 인스턴스(instance)를 혼동하면, React는 어떤 컴포넌트를 렌더링해야 할지 혼란스러워집니다.
- 이를 풀어서 설명해보면, React는 JSX 문법을 사용해 컴포넌트를 렌더링합니다. 이 JSX는 와 같은 형태로 컴포넌트의 인스턴스를 생성합니다. 그리고 React는 이 인스턴스를 통해 어떤 컴포넌트를 렌더링할지 결정합니다.
- 그런데 만약 컴포넌트의 참조만 전달된다면, React는 이를 인스턴스로 인식하지 못하고 렌더링 과정에서 문제가 발생합니다. 이는 Router에서뿐만 아니라 모든 React의 상황에서 해당되는 문제입니다.
- 따라서
컴포넌트를 렌더링하려면 항상 컴포넌트의 인스턴스를 생성해주어야 하며, 이를 위해<Component />와 같은 형태를 사용해야 합니다. 이는 React의 기본적인 동작 원리이며, 이를 이해하는 것은 React를 효과적으로 사용하는 데 중요한 부분입니다.
<component />}component prop을 사용하면
: 라우트가 변경될 때마다 새로운 컴포넌트 인스턴스가 생성되므로, 컴포넌트의 상태가 보존되지 않았습니다. 또한, 이 방식은 라우트에 따라 동적으로 다른 컴포넌트를 렌더링하는 것을 어렵게 만들었습니다
element prop은 렌더링 문제를 어떻게 해결해주는 걸까?
: element prop을 사용하면 컴포넌트 인스턴스가 한 번만 생성되므로, 라우트가 변경되어도 컴포넌트의 상태가 유지됩니다. 또한, element prop을 사용하면 라우트에 따라 다른 컴포넌트를 쉽게 렌더링할 수 있습니다.