React๋ ์ปดํฌ๋ํธ์ JSX ์ฝ๋๊ฐ return ํ html ์์๋ฅผ ๋๋๋งํ๋ค.
ํ์ง๋ง ๋ค์์ฒ๋ผ ํ๋ฒ์ ๋๊ฐ์ง ์์๋ฅผ ํ๊บผ๋ฒ์ return ํ ์ ์๋ค.
return (
<h2>์
๋ ฅ์ฐฝ</h2>
<form>
<label>์ด๋ฆ</label>
<input type="text"/>
</form>
);
๋ฐฐ์ด์ ํํ๋ก ๋ง๋ค์ด์ ํ๋์ฉ return ํ๋ฉด ๊ฐ๋ฅํ๊ฒ ์ง๋ง..
return (
[
<h2>์
๋ ฅ์ฐฝ</h2>
<form>
<label>์ด๋ฆ</label>
<input type="text"/>
</form>
]
);
์ปจํ
์ธ ํ๋๋ง๋ค ๋ key๋ฅผ ์ง์ ํด์ค์ผ ํ๋ ๋ฒ๊ฑฐ๋ฌ์์ด ์๊ธด๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด ๋ ์ปจํ ์ธ ๋ฅผ ๊ฐ์ธ๋ div๋ฅผ ๋ง๋ค์ด ํ๋ฉด์ ์ผ๋ก๋ ํ๋์ ์์๊ฐ return ๋๊ฒ๋ ํ๋ค.
return (
<div>
<h2>์
๋ ฅ์ฐฝ</h2>
<form>
<label>์ด๋ฆ</label>
<input type="text"/>
</form>
</div>
);
๋๋๋ง ํ ๋ ํธ๋ฆฌ๋ ์๋์ ๊ฐ์ด ๊ตฌ์ฑ๋ ๊ฒ์ด๋ค.
<div>
<h2>์
๋ ฅ์ฐฝ</h2>
<form>
<label>์ด๋ฆ</label>
<input type="text"/>
</form>
</div>
์ปดํฌ๋ํธ ์์ ์ปดํฌ๋ํธ๊ฐ ํฌํจ๋์ด ์๋ ๊ตฌ์กฐ๊ฐ ๋ฐ๋ณต๋๋ค๋ฉด?
์๋ง์ ์์๋ค์ ๊ฐ์ธ๊ธฐ ์ํ div๋ค์ด ๋ ๋๋ง ๊ณผ์ ์์ ๊ณ์ ์ค์ฒฉ๋ ๊ฒ์ด๋ค.
์ด๋ ๊ฒ div๊ฐ ์ค์ฒฉ๋๋ฉด
Wrapper.js ํ์ผ์ ๋ง๋ค์ด์ props.children๋ง return ํ๊ฒ ๋ง๋ค์ด์ div ์์ด Wrapper ์์ ์ํ ์ปจํ ์ธ ๋ฅผ ๋๋๋งํ ์ ์๊ฒ ํ๋ค.
// Wrapper.js
const Wrapper = (props) => {
return props.children;
};
export default Wrapper;
์์์ ๋ง๋ Wrapper๋ฅผ ์ฌ์ฉํด๋ณด์
import Wrapper from './Wrapper.js';
return (
<Wrapper>
<h2>์
๋ ฅ์ฐฝ</h2>
<form>
<label>์ด๋ฆ</label>
<input type="text"/>
</form>
</Wrapper>
);
form์ Wrapper๋ก ๊ฐ์ธ์ ์ฌ์ฉํ๋ฉด ์๋ก์ด div ์ถ๊ฐ ์์ด h2 ์ form์ ์ปจํ ์ธ ๋ฅผ ํ๊บผ๋ฒ์ ๋๋๋งํ ์ ์๋ค. ๋๋๋ง ํ ๋ ํธ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋๋ค.
<h2>์
๋ ฅ์ฐฝ</h2>
<form>
<label>์ด๋ฆ</label>
<input type="text"/>
</form>
import React from 'react';
React์์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ธ React.Fragment๋ ์์์ ๋ค๋ฃฌ Wrapper.js์ ๋๊ฐ์ด ์๋ํ๋ค. ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ ์ ์๋ค.
return (
<React.Fragment>
<h2>์
๋ ฅ์ฐฝ</h2>
<form>
<label>์ด๋ฆ</label>
<input type="text"/>
</form>
</React.Fragment>
);
Wrapper.js ํ์ผ์ import ํ์ง ์๊ณ React.Fragment ๋ง์ผ๋ก๋ ์๋ก์ด div ์ถ๊ฐ ์์ด h2 ์ form์ ์ปจํ ์ธ ๋ฅผ ํ๊บผ๋ฒ์ ๋๋๋งํ ์ ์๋ค. ๋๋๋ง ํ ๋ ํธ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋๋ค.
<h2>์
๋ ฅ์ฐฝ</h2>
<form>
<label>์ด๋ฆ</label>
<input type="text"/>
</form>
<></>๋ empty tag, short syntax ๋ฑ ์ฌ๋ฌ ์ด๋ฆ์ผ๋ก ๋ถ๋ฆฐ๋ค.
์ด ๋น ํ๊ทธ๋ React.Fragment์ ๋๊ฐ์ด ์๋ํ๋ค.
return (
<>
<h2>์
๋ ฅ์ฐฝ</h2>
<form>
<label>์ด๋ฆ</label>
<input type="text"/>
</form>
</>
);
๋ ํธ๋ฆฌ๋ ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ๊ณผ ๊ฐ๋ค.
div soup๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ React.Fragment๊ฐ ์ ์ผ ์ข์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.