2. Context, useReducer 를 사용하여, 카트에 물건을 담아보자.
사용 Hook useContext, createContext, useReducer , useState javascript 메서드 findIndex, concat reduce function.bind() 본문 카트는, "카트 내부" 뿐 아니라, "메인에 있는 음식 선택창", "음식 선택창의 +, - 버튼" 등 "어디에서나 접근 가능해야한다." 나는 아직 Redux 를 잘 모른다. (현재 진행중이다) 그래서 상태관리가 미흡하다. 그러므로 Context 를 사용하여, 카트에 모든 값들을 접근시켜보자. 총 프로세스 1. context 를 만든다. 2. context 안에는 useReducer 를 만들어, 추가하고 삭제하는 로직을 만든다. 3. cart 안에서 필요한 상태는, "총가격", "카트 안에 담긴 정보"..
2022. 12. 12.
7. 첫 API, 결제시스템을 대신해주는 Stripe API , 그리고 MAP의 재활용!
결제 시스템을 갖추어본다. 우선 API 라는것을 사용해야한다. API 란 Application Programming Interface 의 약자로 " 서로 다른 두 애플리캐이션의 대화방식" 정도로 말할 수 있겠다. API 는 " 요청과 응답을 통하여, 통신하는 방법을 정의하고 있으며", 클라이언트(나) 가 상대 쪽으로 요청을 하면 서버(제공자) 가 요청을 받아들여, 응답함으로써, 데이터를 주고받으며 API는 이러한 요청와 응답에 대한 방법을 정의하고 있는것이다. 우리 모두가, 어플리케이션에 필요한 모든 기능을 스스로 만든다면, 정말로 비효율적이고, 고난의 시간이 될것이다. 음식점을 찾아주는 어플을 만들때, 필요한 지도를 만들겠다고 너무나 커다랗고 방대한, 구글맵을 스스로 만든다고 생각하면, 일단 가능하지도..
2022. 10. 6.
extra) 무한히 증식하는 FORM(혹은, 그 어떤 것이라도)에 관하여 [그 안의 element 선택하기]
여기, 댓글처럼, 무한히 증식하는 FORM 양식이 있다고 가정하자. 대충 일단 3개만 만들어보았다. 이 친구들에게 button을 누르면, log와 함께 p의 값이 바뀌는 코드를 만들고싶다. 예전같았으면, form을 querySelctorAll() 로 전부 잡아 for of 를 돌려서, 전부 eventListener 달아서, submit 연결하고 event.preventDefault() 를 사용해 form을 멈춰서 다시 전부 [ FORM 안에있는 p태그들의 class를 querySelctorAll() 로 전부 잡아 ], let i = form.dataset.xx 하고 뭐 if 써서, p[i] 해서 뭐시기 저시기 하거나 했을텐데... 아니! 이젠 더 스마트해졌지! 1. FORM을 전부 잡아, Listener..
2022. 9. 29.
6. 카트에 물품담고 오더창으로!
개요! 상품설명창에서, 카트에 물건을 담고, 카트에서 수량을 결정짓고 오더로 넘긴다. 유저의 이름으로 정렬된 CART DB 에서는 담은 물품을 볼 수 있고, 삭제도 가능하다! ORDER를 누르면, CART DB의 물품들은 삭제되고, ORDER로 넘어가게된다. CART ajax 만들기 view에 DELETE를 위한 form을 추가하고 조금 진화시켰다. - 수량이 변경될때마다, 자바스크립트를 사용하여, 실시간으로 가격이 노출되게 하였다. - 화면에 보이는 값을 나타낼때는 '원', '+' 등을 사용하여, 시각적으로 효과를 높이고 (따로 div를 만들어서 각각 넣어도 봤지만 생각보다 더러워보였다.) - ORDER 버튼을 통해, ORDER DB로 넘길때에는, "가격 값(num)"의 정확한 형태를 위해, 숫자를 추..
2022. 9. 29.