const array = [] // 배열도 객체다.
// pop, push, shift, unshift, splice => 배열을 직접적으로 수정
// concat, slice => 새로운 배열을 만들어냄
-> react에서는 배열을 직접적으로 수정하는 윗줄보다는 아래줄을 이용해라. (불변성을 위함)
<script type="text/babel">
class LikeButton extends React.Component {
state = {liked: false};
onClickButton(){
this.setState({liked: true})
}
render() {
if (this.state.liked) {
return 'You liked this.';
}
return (
<button onClick={this.onClickButton}>
LIKE
</button>
)
}
}
</script>
<script type="text/babel">
class LikeButton extends React.Component {
constructor(props){
super(props);
this.state = {liked: false};
this.onClickButton = this.onClickButton.bind(this); // 이부분을 해줘야 밖에있는 코드들을 return에서 사용가능
}
onClickButton(){
this.setState({liked: true})
}
render() {
if (this.state.liked) {
return 'You liked this.';
}
return (
<button onClick={this.onClickButton}>
LIKE
</button>
)
}
}
</script>
<script type="text/babel">
class LikeButton extends React.Component {
state = {liked: false};
onClickButton = () => {
this.setState({liked: true})
}
render() {
if (this.state.liked) {
return 'You liked this.';
}
return (
<button onClick={this.onClickButton}>
LIKE
</button>
)
}
}
</script>
<script type="text/babel">
function LikeButton() {
const [liked, setLiked] = React.useState(false); // 구조분해
if (liked) return 'You liked this.'
return (
<button onClick={() => { setLiked(true); }}> LIKE </button>
)
}
</script>