export default class ProfileFollowButton extends React.Component {
handleClick = () => {
setTimeout(() => {
alert(`${this.props.user}를 팔로우했습니다.`)
},3000)
}
return(){
return <button onClick={this.handleClick}>팔로우</button>
}
}
class Example extends React.Component {
constructor(props){
super(props);
this.state = {
count: 0
}
};
handleClick(){
this.setState({ count: this.state.count + 1})
}
render(){
return (
<div>
<p>You clicked {this.state.count} times</p>
<button onClick={this.handleClick.bind(this)}>Click Me</button>
</div>
)
}
}
const Example = () => {
const [count, setCount] = useState(0);
const handleClick = () => {
setCount(count + 1);
}
return (
<div>
<p>You clicked {count} times</p>
<button onClick={handleClick}>Click Me</button>
</div>
)
}

componentDidMount(){
this.updateList(this.props.id);
}
componentDidUpdate(){
if(prevProps.id === this.props.id) return;
this.updateList(this.props.id)
}
useEffect(() => {
updateList(id);
},[id])
componentDidMount(){
document.body.style.overflow = "hidden";
}
componentWillUnmout(){
document.body.style.removeProperty('overflow')
}
useEffect(() => {
document.body.style.overflow = "hidden";
return () => document.body.style.removeProperty('overflow');
}, [])
class UserAgePage extends React.Component {
state = {
users: []
};
componentDidMount(){
fetchUsers().then((users) => {
this.setState({ users });
})
}
render(){
<div>
<p>사용자의 나이 페이지</p>
{users.map({ name, job }) => (
<div key={name}>
<p>
{name}: {job}
</p>
</div>
)}
</div>
}
}
class UserJobPage extends React.Component {
state = {
users: []
};
componentDidMount(){
fetchUsers().then((users) => {
this.setState({ users });
})
}
render(){
<div>
<p>사용자의 직업 페이지</p>
{users.map({ name, job }) => (
<div key={name}>
<p>
{name}: {job}
</p>
</div>
)}
</div>
}
}
function usersHOC(Component){
return class usersHOC extends React.Component {
state = {
users: []
};
componentDidMount(){
fetchUsers().then((users) => {
this.setState({ users });
})
}
render(){
return <Component {...this.props} {...this.state} />;
}
}
}
function UserAgePage({ users }){
// ...
}
export default usersHOC(UserAgePage)
function UserJobPage({ users }){
// ...
}
export default usersHOC(UserJobPage)
<ThemeHOC>
<UserHOC>
<AuthHOC>
<MyComponent />
</AuthHOC>
</UserHOC>
</ThemeHOC>
const useFetchUser = () => {
const [users, setUsers] = useState([]);
useEffect(() => {
fetchUsers().then(users => {
setUsers(users);
})
},[])
return users;
}
이번 글에서는 React Hooks에 대해서 다뤘는데요. 영상을 보기전에는 React Hooks에 대한 사용법이나 꿀팁 같은 영상일줄 알았는데 직접 보니까 그게 아니라 React Hooks가 나온 배경과 나옴으로써 얻은 이점에 대해서 설명하는 영상이네요. React를 처음 배울 때부터 함수형 컴포넌트로만 배워서 클래스형 컴포넌트는 ErrorBoundary 밖에 사용을 안해봤는데 이번에 모르던 개념들을 또 배우고갑니다!