useState
import React, {useState} from 'react';
const Info = () => {
const [name, setName] = useState('');
const [nickname, setNickname] = useState('');
const onChangeName = e => {
setName(e.target.value);
};
const onChangeNickname = e => {
setNickname(e.target.value);
};
return(
<div>
<div>
<input value = {name} onChange = {onChangeName}/>
<input value = {nickname} onChange = {onChangeNickname}/>
</div>
<div>
<div>
이름 : {name}
</div>
<div>
닉네임 : {nickname}
</div>
</div>
</div>
);
};
export default Info;
useEffect
- 정의
- 리엑트 컴포넌트가 렌더링될 때마다 특정 작업을 수행하도록 설정할 수 있는 Hook
- componentDidMount와 componentDidUpdate를 합친 상태와 유사
- componentDidMount : 컴포넌트가 웹 브라우저 상에서 나타난 후, 호출하는 메소드
- componentDidUpdate : 컴포넌트의 업데이트 작업이 끝난 후 호출하는 메소드
- 예제
import React, {useState, useEffect} from 'react';
const Info = () => {
const [name, setName] = useState('');
const [nickname, setNickname] = useState('');
useEffect(() => {
console.log('렌더링 완료!');
console.log({
name,
nickname
});
}, []); //마운트될 때만 컴포넌트 실행.
const onChangeName = e => {
setName(e.target.value);
};
const onChangeNickname = e => {
setNickname(e.target.value);
};
return(
<div>
<div>
<input value = {name} onChange = {onChangeName}/>
<input value = {nickname} onChange = {onChangeNickname}/>
</div>
<div>
<div>
이름 : {name}
</div>
<div>
닉네임 : {nickname}
</div>
</div>
</div>
);
};
export default Info;
import React, {useState, useEffect} from 'react';
const Info = () => {
const [name, setName] = useState('');
const [nickname, setNickname] = useState('');
useEffect(() => {
console.log('렌더링 완료!');
console.log({
name,
nickname
});
}, [name]); //name값이 변경될 때만 컴포넌트 실행.
const onChangeName = e => {
setName(e.target.value);
};
const onChangeNickname = e => {
setNickname(e.target.value);
};
return(
<div>
<div>
<input value = {name} onChange = {onChangeName}/>
<input value = {nickname} onChange = {onChangeNickname}/>
</div>
<div>
<div>
이름 : {name}
</div>
<div>
닉네임 : {nickname}
</div>
</div>
</div>
);
};
export default Info;
import React, {useState, useEffect} from 'react';
const Info = () => {
const [name, setName] = useState('');
const [nickname, setNickname] = useState('');
useEffect(() => {
console.log('렌더링 완료!');
console.log({
name,
nickname
});
}, [name]); //name값이 변경될 때만 컴포넌트 실행.
const onChangeName = e => {
setName(e.target.value);
};
const onChangeNickname = e => {
setNickname(e.target.value);
};
return(
<div>
<div>
<input value = {name} onChange = {onChangeName}/>
<input value = {nickname} onChange = {onChangeNickname}/>
</div>
<div>
<div>
이름 : {name}
</div>
<div>
닉네임 : {nickname}
</div>
</div>
</div>
);
};
export default Info;