728x90
300x250
1. JSX를 사용한 props 사용법
import React from 'react';
function Greeting(props) {
return <h1>Hello, {props.name}!</h1>;
}
function App() {
return <Greeting name="moo" />;
}
export default App;
App컴포넌트는 Greeting 컴포넌트에 name이라는 props를 전달하고 있다.
Greeting 컴포넌트는 전달받은 props.name값을 사용하여
"Hello, moo!"라는 문구를 렌더링한다.
JSX를 사용한 props의 장점
- 직관적이고 HTML-like 문법을 사용하여 가독성이 좋다.
- 속성 형태로 props를 쉼게 전달할 수 있어 컴포넌트 간 데이터 흐름을 명확하게 표현한다.
2. JSX를 사용하지 않은 props 사용법
JSX 없이 리액트 컴포넌트를 사용할 때는 React.createElement() 메서드를 사용하여 컴포넌트를 생성한다.
이 방법은 리액트 내부적으로도 사용되며, props를 객체로 전달한다.
import React from 'react';
function Greeting(props) {
return React.createElement('h1', null, `Hello, ${props.name}!`);
}
function App() {
return React.createElement(Greeting, { name: 'moo' });
}
export default App;
React.createElement()메서드를 사용하여 Greeting 컴포넌트를 생성하고, name이라는 props를 전달한다.
React.createElement()는 세 가지 인자를 받는다.
1. 타입 : HTML요소나 컴포넌트('h1', Greeting 등).
2. props : 해당 요소나 컴포넌트에 전달할 props 객체.
3. children : 해당 요소나 컴포넌트 내부에 포함될 자식 요소 또는 텍스트
jsx없이 props를 사용하는 방법의 특징
- jsx문법을 사용하지 않으므로 자바스크립트 함수 호출 방식에 가깝다.
- jsx보다 코드가 다소 복잡해 보일 수 있지만, 리액트는 내부적으로 이 방식으로 컴포넌트를 처리한다.
728x90
반응형
'Front-end > React' 카테고리의 다른 글
컴포넌트 렌더링 (0) | 2024.11.13 |
---|---|
리액트에서 컴포넌트 이름을 대문자로 시작해야 하는 이유 (0) | 2024.11.12 |
props에 컴퍼넌트 사용하기 (1) | 2024.11.10 |
props에 {} 중괄호 사용하는 이유와 방법 (1) | 2024.11.09 |
리액트에서 props란? (0) | 2024.11.08 |
댓글