zoaseo
To Infinity And Beyond
zoaseo
전체 방문자
오늘
어제
  • 분류 전체보기 (763)
    • 개발이 좋아서 (381)
      • SAP가 좋아서 (3)
      • Java가 좋아서 (42)
      • Spring이 좋아서 (50)
      • JPA가 좋아서 (0)
      • QueryDSL이 좋아서 (26)
      • Docker가 좋아서 (7)
      • Redis가 좋아서 (7)
      • AWS가 좋아서 (5)
      • CI/CD가 좋아서 (6)
      • Troubleshooting이 좋아서 (4)
      • Kotlin이 좋아서 (7)
      • SQL이 좋아서 (6)
      • HTTP가 좋아서 (21)
      • JavaScript가 좋아서 (30)
      • TypeScript가 좋아서 (6)
      • Vue가 좋아서 (21)
      • Flutter가 좋아서 (61)
      • React가 좋아서 (20)
      • Redux(React)가 좋아서 (2)
      • Angular가 좋아서 (22)
      • HTML이 좋아서 (9)
      • CSS가 좋아서 (15)
      • PHP가 좋아서 (9)
      • Illustrator가 좋아서 (2)
    • 노력이 좋아서 (169)
    • 결과물이 좋아서 (14)
    • 코딩연습이 좋아서 (168)
      • 이론이 좋아서 (62)
      • SQL이 좋아서 (90)
    • 유용한 사이트가 좋아서 (28)
    • Github (2)

인기 글

티스토리

hELLO · Designed By 정상우.
zoaseo

To Infinity And Beyond

<step88>'react_typescript_interface, keyof, Generic'
노력이 좋아서

<step88>'react_typescript_interface, keyof, Generic'

2022. 7. 26. 12:51

1)

typescript 적용

npx create-react-app ts-react-tutorial --template typescript

src/

Counter.tsx

import React, { useState } from 'react';

const Counter = () => {
    const [ count, setCount ] = useState<number>(0);
    const onIncrease = () => setCount(count+1);
    const onDecrease  = () => setCount(count-1);
    return (
        <div>
            <h1>{count}</h1>
            <div>
                <button onClick={onIncrease}>+1</button>
                <button onClick={onDecrease}>-1</button>
            </div>
        </div>
    );
};

export default Counter;

MyForm.tsx

import React, { useState } from 'react';

const MyForm = () => {
    const [ form, setForm ] = useState({
        name: "",
        description: ""
    });
    const { name, description } = form;
    const onChange = (e:any) => {
        const { name, value } = e.target;
        setForm({
            ...form,
            [name]: value
        })
    }
    const handleSubmit = (e:any) => {
        e.preventDefault();
        setForm({
            name: "",
            description: ""
        })
    }
    return (
        <form onSubmit={handleSubmit}>
            <input name='name' value={name} onChange={onChange}/>
            <input name='description' value={description} onChange={onChange}/>
            <button type="submit">등록</button>
        </form>
    );
};

export default MyForm;

'노력이 좋아서' 카테고리의 다른 글

<step89>'react_ts_userList'  (0) 2022.07.27
<step89>'react_ts_counter, ReducerSample'  (0) 2022.07.27
<step88>'react_typescript_interface, keyof, Generic'  (0) 2022.07.26
<step88>'react_typescript_유니언, 인터섹션, 타입추론, 타입단언'  (0) 2022.07.26
<step88>'react_typescript_Tuple, Enum'  (0) 2022.07.26

    티스토리툴바