Hooks
배열 비구조화 할당 (객체비구조화할당과 비슷 : 배열 안에 들어있는 값을 쉽게 추출할 수 있도록 해준다)
const array = [1,2];
const one = array[0];
const two = array[1];
을 배열비구조화할당으로 표현하면?
const array = [1,2];
const [one,two] = array;
이러캐..
import React, {useState} from 'react';
const Say = () => {
//첫번째:현재상태, 두번째:상태를 바꿔주는 함수(Setter함수)
const [message, setMessage] = useState('');
const onClickEnter = () => setMessage('안녕하세요');
const onClickLeave = () => setMessage('안녕히가세요')
return (
<>
<button onClick={onClickEnter}> 입장 </button>
<button onClick={onClickLeave}> 퇴장 </button>
<h1> {message} </h1>
</>
)
}
import React, {useState} from 'react';
const Say = () => {
//첫번째:현재상태, 두번째:상태를 바꿔주는 함수(Setter함수)
const [message, setMessage] = useState('');
const [color, setColor] = useState()
const onClickEnter = () => setMessage('안녕하세요');
const onClickLeave = () => setMessage('안녕히가세요')
return (
<>
<button onClick={onClickEnter}> 입장 </button>
<button onClick={onClickLeave}> 퇴장 </button>
<h1 style={{color}}> {message} </h1>
</>
)
}
setState / useState
를 통해 전달받은 세터함수setter
를 사용해야한다.//객체다루기
const object = {
a: 1,
b: 2,
c: 3
};
//사본을 만들어서 b값만 덮어쓰기
const nextObject = {
...object,
b: 2
}
//배열다루기
const array = [
{
id: 1,
value: true
},
{
id: 2,
value: true
},
{
id: 3,
value: false
}
];
//새항목 추가
let nextArray = array.concat({id: 4});
//id가 2인 항목제거
nextArray.filter(item => item.id !== 2);
//id가 1인 항목의 value를 false로 설정
nextArray.map(item => (item.id === 1 ? {...item, value:false} : item));
props
: 부모컴포넌트가 설정하고,
state
: 컴포넌트 자체적으로 지닌 값으로써 컴포넌트 내부에서 값을 업데이트할 수 있다.