리덕스 관련
let intialstate = {
list: [],
detail_list: null,
heart_list: null,
};
/* ----------------- 액션 타입 ------------------ */
const LOAD_POSTS = "post_reducer/LOAD";
const CREATE_POST = "post_reducer/CREATE";
const UPDATE_POST = "post_reducer/UPDATE";
const REMOVE_POST = "post_reducer/REMOVE";
// const CREATE_HEART = "post_reducer/CREATE";
/* ----------------- 액션 생성 함수 ------------------ */
export function loadPosts(payload) {
return { type: LOAD_POSTS, payload };
}
export function createPost(payload) {
return { type: CREATE_POST, payload };
}
export function updatePost(post_index) {
return { type: UPDATE_POST, post_index };
}
export function removePost(post_index) {
return { type: REMOVE_POST, post_index };
}
/* ----------------- 미들웨어 ------------------ */
미들웨어는 언더바 __두개 이후 관련이름
export const __loadPost = () => {
return async function (dispatch) {
const loadData = await apis.getPosts();
// console.log(loadData.data);
dispatch(loadPosts(loadData.data));
};
};
/* ----------------- 리듀서 ------------------ */
export default function Post_reducer(state = intialstate, action) {
// 새로운 액션 타입 추가시 case 추가한다.
switch (action.type) {
case LOAD_POSTS: {
return { list: action.payload.reverse() };
}
case CREATE_POST: {
return { ...state, list: [...state.list, action.payload] };
}
case LOAD_DETAIL: {
return { ...state, detail_list: action.loadDetailData };
}
case REMOVE_POST: {
return state.filter((list) => list.id !== action.id);
}
default:
return state;
}
}
폴더 관련 정리
깃 관련
_ [본인이름] 정확한 머지 내역_
으로 머지한다. 충돌 발생 시 해당 페이지 관리자와 충분한 상의 후 충돌 해결한다.css