옛날에 쓰던 문법. 어차피 지금은 컴포넌트 만들때 함수형태로 만들어서 안쓰는 문법.
더 간단하게 정리만 넘어감.
return 안에 html 적기
class Modal2 extends React.Component {
constructor(){
super()
}
render(){
return (
<div>안녕</div>
)
}
}
class Modal2 extends React.Component
extends는 class안에 있던 변수, 함수 복사해주는 문법.
React.Component라는 class안에 있던 변수와 함수들을 복사해야 컴포넌트라고 인정해주기 때문에 class 어쩌구 extends React.Component라고 쓰는 것
class Modal2 extends React.Component {
constructor(){
super();
this.state = {
name : 'kim',
age : 20
}
}
render(){
return (
<div>안녕 { this.state.name }</div>
)
}
}
function 쓸때는, state 변경은 사실상 새로 만들어서 재렌더링하는 식이였음.
하지만 class는 실제로 update를 하는 식.
아래는 버튼을 누르면 this.state의 age를 20 -> 21로 변경하는 코드.
class Modal2 extends React.Component {
constructor(){
super();
this.state = {
name : 'kim',
age : 20
}
}
render(){
return (
<div>안녕 { this.state.age }
<button onClick={()=>{ this.setState({age : 21}) }}>버튼</button>
</div>
)
}
}
부모가 보낸 props를 출력하고 싶으면
어딘가 java class와 많이 닮은 거 같음.
class Modal2 extends React.Component {
constructor(props){
super(props);
this.state = {
name : 'kim',
age : 20
}
}
render(){
return (
<div>안녕 { this.props.프롭스이름 }</div>
)
}
}
function 쓰자.