본문 바로가기
IT/React

props, useState, 계산기 예제

by 골든크랩 2022. 9. 23.
728x90
반응형

클래스 컴포넌트 기능 => 훅이라고 하는 기능으로 옮겨가며서
함수기반 컴포넌트 + 훅 => 클래스 컴포넌트를 대체
react-컴포넌트를 만들때 rsf 를 하면 함수기반 컴포넌트를 만들어준다.

props : 함수를 호출하는 쪽에서 매개변수를 주면 매개변수를 받아오는 객체이다.
useState: state 
props : 부모로부터 자식컴포논트한테 값을 부여하고자 할 때 props 객체를 사용한다.
state : 자신의 상태값을 저장하고 있다.  반드시 상태값은 state에 저장해야맘

onChange 이벤트는...이벤트를 발생시킨 객체에 참조를 가지고 온다.
input 태그와 state에 저장된 변수를 연동하기

 

 

import React, { useState } from 'react';

function Calculator(props) {
    const [xvalue, setXvalue] = useState(3);
    const [yvalue, setYvalue] = useState(5);
    const [result, setResult] = useState(0);

    const add = () => {
        console.log(xvalue);
        console.log(yvalue);

        setResult(parseInt(xvalue) + parseInt(yvalue));
    }

    const sub = () => {
        console.log(xvalue);
        console.log(yvalue);

        setResult(parseInt(xvalue) - parseInt(yvalue));
    }

    const multi = () => {
        console.log(xvalue);
        console.log(yvalue);

        setResult(parseInt(xvalue) * parseInt(yvalue));
    }

    const divide = () => {
        console.log(xvalue);
        console.log(yvalue);

        setResult(parseInt(xvalue) / parseInt(yvalue));
    }

    // 이함수 안만들어주면, 절대 값변경이 절대 일어나지.
    const onChangeXvalue = (e) => {
        console.log(e.target.value);
        setXvalue(e.target.value);
    }

    const onChangeYvalue = (e) => {
        console.log(e.target.value);
        setYvalue(e.target.value);
    }

    return (
        <div>
            <h1>사칙연산</h1>
            x : <input type="text" name="xvalue" value={xvalue} onChange={onChangeXvalue}/><br/>
            y : <input type="text" name="yvalue" value={yvalue} onChange={onChangeYvalue}/><br/>
            <br/>
            result : <span id="result">{result}</span><br/><br/>


            <button type="button" onClick={add}>더하기</button>
            <button type="button" onClick={sub}>빼기</button>
            <button type="button" onClick={multi}>곱하기</button>
            <button type="button" onClick={divide}>나누기</button>

            <br/>            
        </div>
    );
}

export default Calculator;
728x90
반응형

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

For 예제2 - 배열에 목록 추가하기  (0) 2022.09.23
For루프 예제  (0) 2022.09.23
useState 함수 사용예  (0) 2022.09.23
JSX 문법  (0) 2022.09.23
React 소스 수정 진입점  (0) 2022.09.22

댓글