import { useEffect } from 'react'
function User({ user, onRemove, onToggle }) {
useEffect(() => {
console.log('컴포넌트가 화면에 나타남')
return () => {
console.log('컴포넌트가 화면에서 사라짐')
}
}, [])
return (
<div>
<b style={{ cursor: 'pointer', color: user.active ? 'green' : 'black' }} onClick={() => onToggle(user.id)}>
{user.username}
</b>
<span>({user.email})</span>
<button onClick={() => onRemove(user.id)}>삭제</button>
</div>
)
}
export const UserList = ({ users, onRemove, onToggle }) => {
return (
<div>
{users.map((user) => (
<User user={user} key={user.id} onRemove={onRemove} onToggle={onToggle} />
))}
</div>
)
}
처음 실행하면 마운트됨
컴포넌트 삭제하면 언마운트됨
컴포넌트 등록하면 마운트됨
useEffect(() => {
console.log('user 값이 설정됨')
console.log(user)
return () => {
console.log('user가 바뀌기 전 ..')
console.log(user)
}
}, [user])
useEffect(() => {
console.log(user)
})
해당 내용은 다음 자료를 참고했습니다.
https://react.vlpt.us/basic/16-useEffect.html