본문 바로가기
코딩 프로그래밍/Javascript 자바스크립트

React state 변수와 버튼에 기능 넣기

by 프즈 2020. 11. 8.
반응형

지난 글에서 리액트를 연습하기 위해 환경 구성했었는데요

tolovefeels.tistory.com/96

 

nodejs 없이 react 문법 연습하기

react로 뭔가 만들어보려면 초기 세팅하는 것들이 많은데요 문법만 기초부터 연습해보려면 nodejs 설치 없이도 할 수 있어요 Visual Studio Code 만 설치되어 있으면 할 수 있습니다 기본 html 에서 react

tolovefeels.tistory.com

그 코드에서 변수와 함수에 대해서 알아봤어요

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>연습</title>
    <!-- React, React-DOM 스크립트 -->
    <script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script>
    <script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
</head>
<body>
    <!-- 1. React 가 보여지는 곳 -->
    <div id="root"></div>
</body>
<script>
    // React 로 태그 만들기
    const e = React.createElement;
    
    class LikeButton extends React.Component {
        constructor(props) {
            super(props)
        }

        render() {
            return e('button', null, '좋아요')
        }
    }
</script>
<script>
    // React로 만든 태그 렌더링 하기
    ReactDOM.render(e(LikeButton), document.querySelector('#root'));
</script>

</html>

다른 곳에서 받는 값이 아니라 그 안에서 변하는 값은 state 변수로 관리해야 합니다

그래서 버튼을 눌렀을 때 render 부분의 좋아요 부분이 좋아요 눌림이라고 바꾸고 싶고 변하는 부분이니 state 변수로 관리해야 합니다

 

constructor 안에 넣거나 constructor 부분을 아예 빼고 밖에 해도 됩니다

    class LikeButton extends React.Component {
            constructor(props) {
                super(props)
                this.state = {
                    liked: false
                }
            }

        render() {
            return e('button', null, '좋아요')
        }
    }

LikeButton 클래스만 보면 이렇게 수정 가능합니다

null 부분에 함수를 넣으면 됩니다

return e('button', {onClick:() => {this.setState({ liked:!this.state.liked })}}, this.state.liked ? '좋아요 눌림': "좋아요 누르기")

return 부분이 이렇게 바꾸면 좋아요를 눌렀는지에 따라 버튼 이름을 변경 가능하게 됩니다

반응형

댓글