Open YeonjuOHYE opened 5 years ago
자바스크립트 function :
const friendList = [ { id: 1, name: 'Phoebe' }, { id: 2, name: 'Rachel' }, { id: 3, name: 'Ross' }, ];
function ChatRecipientPicker() { const [recipientID, setRecipientID] = useState(1); const isRecipientOnline = useFriendStatus(recipientID);
return ( <> <Circle color={isRecipientOnline ? 'green' : 'red'} /> <select value={recipientID} onChange={e => setRecipientID(Number(e.target.value))}
{friendList.map(friend => ( {friend.name} ))} </> ); } ## useReducer ```javascript const [state, dispatch] = useReducer(reducer, initialArg, init); useReducer의 reducer는 state값을 처리하여 반환하는 함수인 dispatch와 반환하는 값에 해당하는 state를 return 한다.
{friendList.map(friend => (
))} </> ); }
## useReducer ```javascript const [state, dispatch] = useReducer(reducer, initialArg, init);
useReducer의 reducer는 state값을 처리하여 반환하는 함수인 dispatch와 반환하는 값에 해당하는 state를 return 한다.
const [state, dispatch] = useReducer(reducer, initialArg, init);
세번째 인자인 init을 사용하면, reducer안에서도 사용할 수 있고
case 'reset': return init(action.payload);
초기화 시에, initailArg를 init()한 결과를 초기값을 가진다
그냥 ref랑 차이가 뭐야
custom hook 이란
자바스크립트 function :
※ 주의
TIP
function ChatRecipientPicker() { const [recipientID, setRecipientID] = useState(1); const isRecipientOnline = useFriendStatus(recipientID);
return ( <> <Circle color={isRecipientOnline ? 'green' : 'red'} /> <select value={recipientID} onChange={e => setRecipientID(Number(e.target.value))}
세번째 인자인 init을 사용하면, reducer안에서도 사용할 수 있고
초기화 시에, initailArg를 init()한 결과를 초기값을 가진다
useMemo, useCallback
useRef
그냥 ref랑 차이가 뭐야
useImperativeHandle
useLayoutEffect