return React TS

CUBE·2023년 11월 13일
0

JAVASCRIPT 이해하기

목록 보기
5/8

어떠한 언어나 프레임워크든 특정 Hook 혹을 갖고 있기 때문에 거기에 맞춘
타입의 종류에 대해 알고 있어야한다. 예를 들면 어떠한 함수 값에는 Promise Event 가 발생할 수도잇고, Async Event가 발생할 수도있다.

하지만 기본적인 React의 기본 함수 개념으로 React.FC 를 사용하여 함수를 정의할 수 있다.
하지만 이러한 함수를 적용함에 있어 어떠한 컴포넌트가 어떠한 특정 이벤트를 발생 시키는지 여부에 따라 타입 스크립트 컴파일러가 타입 추론의 실패 가능성 유무를 고려하여 함수의 특정 부분의 어디에 타입을 지정할지 잘 고려해서 타입을 지정해 줘야 한다.

export const App: React.FC = () => {
	const a = "name" 
}
```

아래의 코드는 기본적인 객체와 객체의 상태관리, React에서 사용하는 사이드 효과 Hook의 코드이다. User 라는 interface 즉 껍데기가 존재하고 id, name, email 의 타입이 존재한다.


```jsx
import React, { useState, useEffect } from 'react';

// 사용자 타입 정의
interface User {
  id: number;
  name: string;
  email: string;
}

// 사용자 목록을 불러오는 API 함수 (가상)
// a
async function fetchUsers(): Promise<User[]> {
  // 여기에 API 호출 로직을 구현하면 됩니다.
  // 예시를 위해 더미 데이터를 반환합니다.
  return Promise.resolve([
    { id: 1, name: 'Jane Doe', email: 'jane.doe@example.com' },
    { id: 2, name: 'John Doe', email: 'john.doe@example.com' }
  ]);
}

function App() {
const [users, setUsers] = useState<User[]>([]);
const [loading, setLoading] = useState<boolean>(true);
// 
// 사이드 이펙트
useEffect(() => {
  // 1번째 줄에 기재된 fetchUsers 함수안에 데이터 User로 정의한 인터페이스를 
  // setUsers 함수안에 data에 넣어준다.
  // 비동기 함수 fetchUsers() 호출하고 setUsers 안에 넣어줃나. 
  // setLoading(flase);

  fetchUsers().then(data => {
    setUsers(data);
    // setLoading에는 false값을 넣어준다.
      setLoading(false);
    });
  }, []);

  // 로딩중일 경우 Loading 코드 노출...

  return (
    <div>
      <h1>User List</h1>
      <ul>
        {users.map(user => (
          <li key={user.id}>
            {user.name} - {user.email}
          </li>
        ))}
      </ul>
    </div>
  );
};

export default UserList;
```
profile
엄마이오빠이상해

0개의 댓글