์ค๋์ ์ ์ด ์ปดํฌ๋ํธ์ ๋น์ ์ด ์ปดํฌ๋ํธ์ ๋ํด ์ ๋ฆฌํ๋ค.
์ ์ด ์ปดํฌ๋ํธ
- React์์ ์ปดํฌ๋ํธ ์ํ๊ฐ ์ ๋ ฅ ํ๋ ๊ฐ์ ์ ์ดํ๋ค.
- ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ๋ผ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์ปดํฌ๋ํธ์ ์ํ๋ก ์ ๋ฐ์ดํธ๋๋ค.
- ์ํ(
state
)์onChange
์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ํตํด ๊ฐ์ด ๊ด๋ฆฌ๋๋ค. - ๊ฐ์ด ์ฆ๊ฐ์ ์ผ๋ก ๋ ๋๋ง์ ๋ฐ์๋๋ค.
import { useState } from 'react';
function ControlledComponent() {
const [inputValue, setInputValue] = useState("");
const handleChange = (event) => {
setInputValue(event.target.value);
};
return (
<div>
<h2>์ ์ด ์ปดํฌ๋ํธ</h2>
<input type="text" value={inputValue} onChange={handleChange} />
<p>์
๋ ฅ๋ ๊ฐ: {inputValue}</p>
</div>
);
}
export default ControlledComponent;
๋น์ ์ด ์ปดํฌ๋ํธ
- DOM ์์ ์์ฒด๊ฐ ๊ฐ์ ์ ์ดํ๋ค. ์ ๋ ฅ๊ฐ์ React๊ฐ ์ง์ ๊ด๋ฆฌํ์ง ์๋๋ค.
- ๊ฐ์ ์ง์ ์ ๊ทผํ๊ธฐ ์ํด ref๋ฅผ ์ฌ์ฉํ๋ค.
import { useRef } from 'react';
function UncontrolledComponent() {
const inputRef = useRef();
const handleSubmit = (event) => {
event.preventDefault();
alert(`์
๋ ฅ๋ ๊ฐ: ${inputRef.current.value}`);
};
return (
<div>
<h2>๋น์ ์ด ์ปดํฌ๋ํธ</h2>
<form onSubmit={handleSubmit}>
<input type="text" ref={inputRef} />
<button type="submit">์ ์ถ</button>
</form>
</div>
);
}
export default UncontrolledComponent;
์ฐจ์ด์ ์์ฝ
ํน์ง | ์ ์ด ์ปดํฌ๋ํธ | ๋น์ ์ด ์ปดํฌ๋ํธ |
๊ฐ ๊ด๋ฆฌ | React ์ํ (state) ๊ด๋ฆฌ | DOM ๊ด๋ฆฌ |
์ฝ๋ ๋ณต์ก๋ | ์๋์ ์ผ๋ก ๋ณต์ก | ์๋์ ์ผ๋ก ๊ฐ๋จ |
์ ๊ทผ ๋ฐฉ์ | state, onChange ์ฌ์ฉ | ref ์ฌ์ฉ |
์ฌ์ฉ ์ฉ๋ | ๋์ ํผ, ์ ๋ ฅ ๊ฒ์ฆ ํ์ ์ | ๊ฐ๋จํ ํผ |
'React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
useTransition ์ธ์ ์ธ๊น? (1) | 2024.11.07 |
---|