From 4b591027d624c5f1d89dd27db21c32b55ac31538 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?junh=5Feee=28=EC=9D=B4=EC=A4=80=ED=9D=AC=29?= Date: Mon, 5 Feb 2024 14:51:58 +0900 Subject: [PATCH] =?UTF-8?q?[Redux]=20=EC=83=98=ED=94=8C=20=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/_sample/actions/index.ts | 19 +++++++++++-------- src/modules/_sample/models/index.ts | 11 ++++++----- src/modules/_sample/sagas/index.ts | 3 +++ 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/modules/_sample/actions/index.ts b/src/modules/_sample/actions/index.ts index 39bffb44..14889912 100644 --- a/src/modules/_sample/actions/index.ts +++ b/src/modules/_sample/actions/index.ts @@ -5,8 +5,7 @@ import { createAsyncAction, ActionType, createAction } from 'typesafe-actions'; * 대문자와 _를 사용하여 상수 형태로 작성한다. * 구분자는 소문자로 작성한다. * 동사를 먼저 작성한다. - * 비동기 요청 액션이 아닐 땐 DISPATCH_ 로 시작한다. - * 목록 안에 상세 목록이 존재할 경우(ex. 비행이력) 상세 목록은 LOG로 작성한다. + * 비동기 요청 액션이 아닐 땐 CLIENT_ 로 시작한다. * * 기본 규칙 * 목록 조회 - GET_[주체]_LIST @@ -15,12 +14,16 @@ import { createAsyncAction, ActionType, createAction } from 'typesafe-actions'; * 수정/변경 - UPDATE_[주체] * 삭제 - DELETE_[주체] * + * [동사] + * SET, FIND, SEND, CHECK, REGISTER ... + * [명사] + * LIST, DETAIL, LOG, APPROVAL ... + * * * [Action 함수] * 카멜케이스를 사용하여 작성한다. * 작성한 Action 타입을 참고하여 작성한다. (Ex. GET_DRONE_LIST_REQUEST -> getDroneList) - * 비동기 Action 함수는.. dispatch.. 빼줄까? 너무길어요.. - * 비동기 요청 액션이 아닐 땐 createAction을 사용한다. + * */ // 드론 목록 @@ -29,13 +32,13 @@ const GET_DRONE_LIST_SUCCESS = 'sample/GET_DRONE_LIST_SUCCESS'; const GET_DRONE_LIST_FAILURE = 'sample/GET_DRONE_LIST_FAILURE'; // 지도 타입 -const DISPATCH_MAPTYPE = 'sample/DISPATCH_MAPTYPE'; +const CLIENT_MAPTYPE = 'sample/CLIENT_MAPTYPE'; // 비행 이력 목록 -const HISTORY_LIST_REQUEST = 'sample/HISTORY_LIST_REQUEST'; +const GET_HISTORY_LIST_REQUEST = 'sample/HISTORY_LIST_REQUEST'; // 비행 이력 상세 목록 -const HISTORY_LOG_REQUEST = 'sample/HISTORY_LOG_REQUEST'; +const GET_HISTORY_LOG_REQUEST = 'sample/HISTORY_LOG_REQUEST'; export const getDroneList = createAsyncAction( GET_DRONE_LIST_REQUEST, @@ -43,7 +46,7 @@ export const getDroneList = createAsyncAction( GET_DRONE_LIST_FAILURE )(); -export const mapType = createAction(DISPATCH_MAPTYPE)(); +export const clientMapType = createAction(CLIENT_MAPTYPE)(); const actions = { getDroneList diff --git a/src/modules/_sample/models/index.ts b/src/modules/_sample/models/index.ts index 5a7fd799..b8b8025a 100644 --- a/src/modules/_sample/models/index.ts +++ b/src/modules/_sample/models/index.ts @@ -1,22 +1,23 @@ /** * 모든 interface는 파스칼케이스를 사용하여 작성한다. + * 모든 Interface는 약자인 I를 붙여준다. * Rq, Rs interface의 경우 Action명 + Rq or Rs를 붙여준다. * * 초기값의 경우 변수명을 init + 주체 로 작성한다. * 초기값의 interface는 State로 끝나도록 작성한다. */ -export const initSample: SampleState = { +export const initSample: ISampleState = { droneList: undefined, droneCount: 0 }; -export interface SampleState { - droneList: Drone[] | undefined; +export interface ISampleState { + droneList: IDrone[] | undefined; droneCount: number | 0; } -export interface Drone { +export interface IDrone { groupId: string; arcrftSno: number; arcrftHght: number; @@ -26,4 +27,4 @@ export interface Drone { arcrftWdth: number; } -export interface UpdateDroneRq {} +export interface IUpdateDroneRq {} diff --git a/src/modules/_sample/sagas/index.ts b/src/modules/_sample/sagas/index.ts index 69bc038a..b205a0e9 100644 --- a/src/modules/_sample/sagas/index.ts +++ b/src/modules/_sample/sagas/index.ts @@ -13,6 +13,9 @@ function* getDroneListSaga( } catch (error: any) {} } +/** + * export saga 함수는 카멜케이스를 사용하여 작성한다. + */ export function* sampleSaga() { yield takeEvery(Actions.getDroneList.request, getDroneListSaga); }