Front/React

React count app

hoonssss 2023. 10. 8. 02:37
반응형
SMALL

처음 사용해보는데 은근 어렵다;;

import 도 은근 귀찮음..

{} 특정 함수 호출

import { useState } from 'react';
import './Counter.css';
import CounterButton from './CounterButton'

export default function Counter() {

    const [count, setCount] = useState(0);

    function incrementCounterParentFunction(by) {
        setCount(count + by)
    }

    function decrementCounterParetFunction(by) {
        setCount(count - by)
    }

    function resetCounter(by) {
        setCount(count - count)
    }

    return (
        <div>
            <span className="totalCount">{count}</span>
            <CounterButton by={1} incrementMethod={incrementCounterParentFunction} decrementMethod={decrementCounterParetFunction}></CounterButton>
            <CounterButton by={3} incrementMethod={incrementCounterParentFunction} decrementMethod={decrementCounterParetFunction}></CounterButton>
            <CounterButton by={5} incrementMethod={incrementCounterParentFunction} decrementMethod={decrementCounterParetFunction}></CounterButton>
            <button className="resetButton" onClick={resetCounter}>Reset</button>
        </div>
    )
}

 

import { PropTypes } from 'prop-types'

export default function CounterButton({ by, incrementMethod, decrementMethod }) {

    // function incrementCounterFunction() {
    //     incrementMethod(by);
    // }

    // function decrementCounterFunction() {
    //     decrementMethod(by);
    // }

    return (
        <div className="Counter">

            <div>
                <button className="countButton" onClick={() => incrementMethod(by)}>+{by}</button>
                <button className="countButton" onClick={() => decrementMethod(by)}>-{by}</button>
            </div>
        </div>
    )

    //유효성검사 
    CounterButton.propType = {
        by: PropTypes.number
    }

    CounterButton.defaultProps = {
        by: 3
    }
}
import './App.css';
import Counter from './components/counter/Counter'

function App() {
  return (
    <div className="App">
      <Counter />
    </div>
  )
}

// function PlayingWithProps({property1,property2}) {
//   console.log(property1)
//   console.log(property2)

//   return (
//     <div>Props</div>
//   )
// }

// function PlayingWithProps(properties) {
//   console.log(properties)
//   console.log(properties.property1)
//   console.log(properties.property2)

//   return (
//     <div>Props</div>
//   )
// }

export default App;
반응형
LIST