React VS React Hooks
리액트 생성 순서
생성: constructor를 먼저 실행을 해 상태를 부여 -> render(HTML,jsx을 DOM에 알맞게 할당. 화면 렌더링) -> componentDidMount(데이터 가져오기 등)
수정: render부터 componentDidUpdate 과정까지 수행
삭제: componentWillUnmount
React Component
Class Component
- 더 많은 기능들 사용
- 코드가 김
- 코드가 복잡
- 성능이 비교적 느림
import React, {Component} from 'react'
export default class Hello extends Component{
render(){
return(
<div>
hello my friends!
</div>
)
}
}
Functional Component
- 사용할 수 있는 기능들이 한정적
- 코드가 간단
- 성능이 비교적 좋음
import React from 'react'
export default function Hello(){
return(
<div>
hello my friends
</div>
)
}
=> 적은 기능밖에 사용하지 못하는 Functional Component를 사용하기보다 많은 기능을 사용할 수 있는 Class Component를 주로 사용해왔음
React Hooks
React 16.8 ver 부터는 Functional Component에서도 Class Component에서만 사용이 가능했던 Life Cycle과 같은 기능들이 사용이 가능해지면서 Functional Component의 사용도가 증가
Class Component
import React, {Component} from 'react'
import Axios from 'axios'
export default class Hello extends Component{
constructor(props){
super(props);
//상태 지정
this.state={name:""};
}
//Life Cycle(데이터 가져오기 등등)
componentDidMount(){
Axios.get('/api/user/name')
.then(response=>{
this.setState({name:response.data.name});
});
}
render(){
return(
<div>
My name is {this.name}
</div>
)
}
}
Functional Component
import React, {useEffect, useState} from 'react'
import Axios from 'axios'
export default function Hello(){
//상태 지정(Hooks전에 사용 불가했던 기능)
const [Name, setName]=useState("")
//Life Cycle(Hooks전에 사용 불가했던 기능)
useEffect(()=>{
Axios.get('/api/user/name')
.then(response=>{
setName(response.data.name);
});
},[]);
return(
<div>
My name is {Name}
</div>
)
}
참고
www.inflearn.com/course/따라하며-배우는-노드-리액트-기본
Author And Source
이 문제에 관하여(React VS React Hooks), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@alwayslee_12/React-VS-React-Hooks저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)