ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • State
    JavaScript/React 2022. 12. 23. 09:03

    state 
    - 내부에서 바뀔 수 있는 값을 의미 
    1. 클래스형 컴포넌트가 가지고 있는 state 
    2. 함수 컴포넌트에서 가지고 있는 useState라는 함수를 통해 사용하는 state

     


     클래스형 컴포넌트의 State

    실습1

    // counter.js
    import { Component } from 'react'; 
    
    class Counter extends Component {
        constructor(props){
            super(props); 
            // state의 초깃값 설정하기 
            this.state = {
                number:0    
            };
        } 
        render(){
            const { number } = this.state;
            return (
            <div>
                <h1>{number}</h1>
                <button
                    //onclick를 통해 버튼이 클릭되었을때 호출할 함수를 지정 
                    onClick={()=> {
                        // this.setState를 사용하여 새로운 값 할당 
                        this.setState({ number: number +1}); 
                    }                
                  }           
                >
                    +1 
                </button> 
            </div>          
            ); 
         }
    }
    
    export default Counter;



    // App.js
    import Counter from './Counter'; 
    
    const App = () => {
        return< Counter />  
    };  
    export default App;

     

    실습2 state객체 안에 여러 값일 있을 때 

    import { Component } from 'react'; 
    
    class Counter extends Component {
        // 컴포넌트 생성자 메서드 
        // 클래스형에서 constructor를 만들 때는 super(props) 를 호출해야 한다 
        constructor(props){
            super(props);
            // state의 초기값 설정하기 
            this.state = {   
                number: 0, 
                fixedNumber: 0  
            }; 
        }
        render(){
            const { number, fixedNumber } = this.state; // state를 조회할 때는 this.state
            return(
                <div>
                    <h1>바뀌는값: {number}</h1>
                    <h1>바뀌지 않는 값: { fixedNumber }</h1>
                    <button
                        // onClick를 통해 버튼이 클릭 되었을 때 호출할 함수 
                        onClick={ () => {
                                // this.setState를 사용하여 새로운 값을 넣을 수 있다 
                                this.setState({ number: number +1});                         
                        }}   
                    >
                        +1                 
                    
                
                    </button> 
                </div>
            )  
        } 
    }
    export default Counter;
    import Counter from './Counter'; 
    
    const App = () => {
        return <Counter/> 
    }
    
    export default App;

     

     함수형 컴포넌트의 useState

     

    실습1 

     

    // Say.js
    
    import { useState } from 'react'; 
    
    const Say = () => {
        const [msg, setMsg] = useState(''); 
        const onClickEnter = () => setMsg('안뇽!!'); 
        const onClickLeave = () => setMsg('빠이!!');
        
        return(
            <div>           
                <button onClick={onClickEnter}>입장</button>
                <button onClick={onClickLeave}>퇴장</button> 
                <h1>{msg}</h1>
            </div> 
        ); 
    }; 
    
    export default Say;
    // App.js
    
    import Say from './Say';
    
    const App = () => {
        return <Say/>; 
    } 
    export default App;

     

    입장버튼을눌렀을때
    퇴장버튼을눌렀을때

    'JavaScript > React' 카테고리의 다른 글

    리액트 디자인 패턴(React Design Pattern)  (0) 2023.02.16
    이벤트(Event)  (0) 2022.12.17
    프라퍼티(Props)  (0) 2022.12.17
    컴포넌트(component)  (0) 2022.12.16
    JSX  (0) 2022.12.15

    댓글

Designed by Tistory.