Redux ; JS 앱을 위한 예측 가능한 상태 컨테이너 - 일관적으로 동작하고, 서로 다른 환경(서버, 클라이언트, 네이티브)에서 작동하고, 테스트하기 쉬운 앱을 작성하도록 도움 - 시간여행형 디버거와 결합된 실시간 코드 수정과 같은 훌륭한 개발자 경험을 제공 React Redux 앱만들기 $ npx create-react-app my-app --template redux Redux 코어 라이브러리 다운로드 $ npm install redux Redux Toolkit 다운로드 $ npm install @reduxjs/toolkit action의 reducer ; action을 주면, 그 action이 적용되어 달라진 결과를 만들어 줌 function reducer(previousState,action)..
기존 컴포넌트 간에 데이터를 전달하려면 props를 이용해야 합니다. A>B>C 각각 부모자식관계일 때, A->C로 데이터를 props로 전달하려면 A>B, B>C로 전달해야하는 불편함이 있습니다. 이를 해결하게 위해 useContext를 사용할 수 있습니다. 조상 Component에서 내보낼 이름으로 createContext를 해줍니다. export const DiaryStateContext = React.createContext(); 로 전달할 요소들을 감싸면 됩니다. 전역 props로 value라는 변수명으로 data를 전달합니다. 아래는 실제 적용 코드입니다. export const DiaryStateContext = React.createContext(); export const DiaryDis..
https://peter-coding.tistory.com/192 [React] 부모 Component -> 자식 Component에게 함수/리스 전달하기 이번에는 데이터를 추가해보겠습니다! App>DiaryList>DiaryItem 부모>자식>손자에게 onDelete함수를 전달하겠습니다. 우선, App에서 DiaryList로 onDelete함수를 props로 전달,전달해주겠습니다. const App = () =.. peter-coding.tistory.com 이 예제를 이어서 작성해보겠습니다. 부모 Component -> 자식 Component에게 props로 emotion_id,img,descript를 담은 리스트를 전달하였었습니다. 이번에는 부모 Component에서 state를 만들어 변경 함수를..
이번에 해볼 것은 저장된 이미지들을 한번에 나열해볼 건데요 ! 각 이미지들은 public>assets안에 저장되어 있습니다. 각 이름은 emotion1, emotion2...emotion5입니다. 6 : class명으로 모든 이미지에 공통 class로 emotion_img_wrapper 7 : 각 이미지별로 다른 class로 `emotion_img_wrapper_${emotion}`를 주었습니다. 8 : 두 class명을 [리스트] 안에 넣어 .join(" ")로 묶어 띄어쓰기 간격으로 합쳐주었습니다. 10 : process.env.PUBLIC_URL은 public의 절대주소이며, ``안에 ${ }보간법을 사용하여 각 이미지별 이미지명을 나타냈습니다. const DiaryItem = ({ id, emot..
이번에는 useNavigate를 이용하여 사이트 이동버튼을 만들어볼건데요 ! 일단 useNavigate를 react-router-dom으로부터 import해줍니다. import { useNavigate } from "react-router-dom"; useNavigate()의 변수 navigate를 만들어줍니다. 6~10 : MyButton의 props로 type, text, onClick을 전달해줍니다. 이 때 props를 전달하는 것이기에 {중괄호}로 감싸야 합니다. 9 : onClick의 함수로 navigate()를 전달하는 것입니다. 현재 주소에서 /new를 붙힌 주소로 이동시킬 것이기 때문에 navigate("/new")라 작성해줍니다. const DiaryList = ({ diaryList }..