[TS / React] props 전달

2022. 7. 27. 11:19·Stack/TypeScript

TS-REACT-TUTORIAL

 

components/Greeting.tsx

import React from 'react';
type GreetingsProps = {
    name: string;
    mark: string
}
const Greetings = ({ name, mark } : GreetingsProps ) => {
    return (
        <div>
            Hello, {name} {mark}
        </div>
    );
};

export default Greetings;

 

App2.tsx

import React from 'react';
import Greetings from './components/Greetings';

const App2 = () => {
    return (
        <div>
            <Greetings name="Green" mark="hihi"/>
        </div>
    );
};

export default App2;

 


 

components/UserList.tsx

import React, { useState } from 'react';
import User from './User';

// 배열안에 들어갈 객체 타입을 지정
// 자식 컴포넌트로 넘겨주기 위해 export
export type UserType = {
    id: number;
    name: string;
    age: number;
    position: string;
}

const UserList = () => {
    const [userList, setUserList ] = useState<UserType[]>([
        {
            id: 0,
            name: "김그린",
            age: 24,
            position: "front-end"
        },
        {
            id: 1,
            name: "이블루",
            age: 26,
            position: "back-end"
        }
    ])
    return (
        <div>
            {userList.map(user=><User key={user.id} user={user}></User>)}
        </div>
    );
};

export default UserList;

 

components/User.tsx

import React from 'react';
import { UserType } from './UserList';

type UserProps= {
    // 부모 컴포넌트에 import 해온 타입을 재사용
    user: UserType
}
const User = ( {user}: UserProps ) => {
    const { name, age, position } = user
    return (
        <div>
            <p>이름: {name}</p>
            <p>나이: {age}</p>
            <p>포지션: {position}</p>
        </div>
    );
};

export default User;

 

App2.tsx

import React from 'react';
// import Greetings from './components/Greetings';
import UserList from './components/UserList';

const App2 = () => {
    return (
        <div>
            {/* <Greetings name="Green" mark="hihi"/> */}
            <UserList />
        </div>
    );
};

export default App2;

'Stack > TypeScript' 카테고리의 다른 글

[TS / React] Context API  (0) 2022.07.28
[TS / React] To-Do List 구현  (0) 2022.07.27
[TS / React] React에서 TS 사용해보기 2 (useReducer)  (0) 2022.07.27
[TS / React] React에서 TS 사용해보기  (0) 2022.07.26
[TS] Generic  (0) 2022.07.26
'Stack/TypeScript' 카테고리의 다른 글
  • [TS / React] Context API
  • [TS / React] To-Do List 구현
  • [TS / React] React에서 TS 사용해보기 2 (useReducer)
  • [TS / React] React에서 TS 사용해보기
7ingout
7ingout
  • 7ingout
    Hello, 7ingout world!
    7ingout
  • 전체
    오늘
    어제
    • 분류 전체보기 (205)
      • Project (5)
      • Stack (173)
        • React (40)
        • JavaScript (50)
        • TypeScript (14)
        • HTML (11)
        • CSS (31)
        • Spring (9)
        • PHP (15)
        • SQL (3)
        • Python (0)
      • ETC (9)
      • Design (13)
        • Illustrator (6)
        • Photoshop (7)
      • Articloid (4)
        • 7ingout (4)
  • 공지사항

    • ☻
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
7ingout
[TS / React] props 전달
상단으로

티스토리툴바