일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- ECMAScript
- NextJs
- react
- TypeScript
- backend
- API
- Flutter
- CSS
- Session
- nodejs
- frontend
- javscript
- JavaScript
- Component
- DART
- 자바스크립트
- heroku
- clonecoding
- pug
- MongoDB
- form
- 리액트
- CLONE
- HTML
- Mongoose
- express
- ES6
- graphQL
- node.js
- GRID
- Today
- Total
목록fetch (6)
Enjoy Programming

음 이번 포스팅은 react로 할지 graphql로 넣을지 고민하다가... 어짜피 apollo client의 useLazyQuery를 사용하게된게 포스팅의 주 목적이니 graphql로 섹션을 잡았다. 자 보통 버튼 클릭이 일어났을 때 api로 부터 data를 fetching 한다면 당연히 이벤트 callback에서 fetch해서 가져오면 된다 callback 밖에 있다면 버튼 클릭시가 아니라 그냥 input의 데이터가 변화되면서 재 랜더링 될때마다 계속 fetching을 하기에 불필요하다 매우! 그런데 여기서 한가지 문제가 발생했다. 지금 사용하는 useQuery의 경우 공식문서에 따르면 useQuery hook은 component가 mount && render될 때 이미 Apollo Provider가 ..

사이드 프로젝트로~ 유튭과 인스타를 클론하면서 진행중인데~ 좋아요를 구현해보았다.. 생각보다 어렵진 않았는데~ 1. db model의 스키마 타입 정하기 2. 라우터 url설정하기 3. 컨트롤러 작성하기 4. fetch 를 이용해 라우터에 POST로 해당값을 서버로 보내주고~ 5. response로 db에 저장된 값을 가져와서 템플릿에 뿌려준다~ 일단 완성된 것은/ photo모델의 rating 스키마 타입은 objectId로 하고 User모델을 참조한다. User 모델 또한 좋아요 한 영상이나 사진을 각각의 프로퍼티에 배열로 담아준다. apiRouter를 통해 해당 값들을 받아오도록 한다. 템플릿에서 rating prop의 값이 배열로 정해져있으므로 length로 해당 좋아요 갯수를 정한다. 프런트의 자..

프론트에서 비동기로 조회수를 올리기 코드를 짜는데 가물가물한 ajax를 리마인드 해본다. 우선 fetch를 이용해 내가 원하는 url을 가져오고 백엔드에서는 url의 video id를 보내주기위해 잠시 포스팅했던 data-attribute를 사용한다. data-attr를 이용해서 html에 데이터를 저장하고 프론트에서 그 정보를 가져오게 한다. 니코 왈 data-attr는 백엔드와 프론트간에 정보교환을 하는데 있어 가장 쉬운 방법이라고 한다. https://developer.mozilla.org/ko/docs/Learn/HTML/Howto/Use_data_attributes 데이터 속성 사용하기 - Web 개발 학습하기 | MDN HTML5 특정 요소와 연관되어 있지만 확정된 의미는 갖지 않는 데이터에 ..

이미 promise에 대해 포스팅을 한적이 있지만 다시 한번 짚고 넘어가자. promises에 대해 알아보기 전에 먼저 비동기성과 동기성에 대해 생각해보자 & Synchronous 동기식 동기.. 참 어려운 말인듯 하다. 검색을 하다보면 정말 각양각색으로 풀이를 해놨다. 대부분 현재 작업의 요청과 응답이 동시에 발생하는 것이라고 기술하고 있는데 필자가 이해하기에는 동시라고 하기엔 같은 시간에 함께 이루어져야 하므로 혼동이 올 수 밖에 없을 것 같다. 필자가 이해하기에는 현재 요청에 대한 응답이 발생함과 동시에 다음 작업을 요청하는 것? 그렇기에 전 후 순서가 있게 이루어지는 것이 동기식이라 생각된다. & Asynchronous 비동기식 비동기란 다수의 작업이 동시에 일어날 수 있다는 의미이다. 동기와 다..

이제 fetch API를 이용해 movie data를 가져와보자. 그런데~ 니코쌤은 fetch보단 Axios를 더 좋은 방법이라고 한다. axios는 fetch위에 작은 layer가 올라가 있는거라고 생각하면 된다. 간단히 짚고 넘어가면 Axios는 node.js로부터 HTTP request를 만들거나 , ES6 Promise API를 지원하는 브라우저로 부터 XMLHttpRequest를 만들기 위해 사용하는 javascript 라이브러리이다. fetch()는 JSON데이터를 처리할 때 2단계를 거친다. 초기에 request를 보내고, 실제 data 오브젝트를 받으려면 response를 받는 측에서 .json()메소드를 사용해야 한다. 그리고 fetch()를 사용해서 response error가 발생했다..

component 의 life cycle까지 알아보았고. 이제 movie app을 만들기 위해 movie component를 구성해본다. state를 만들어주고 기본적으로 컴포넌트가 마운트 되면 라이프 사이클이 시작된다. 라이프 사이클은 마운트 되는 순간 시작되었으니 isLoading은 당연히 true이다. render에서 isLoading이 true이면 Loading을 아니라면~ Ready라고 알려준다. 자 이제 로딩이 끝나면 ready로 변경이 되어야 하는데~ 컴포넌트의 render를 하면 호출되는 life cycle method인 componentDidMount함수를 통해 setTimeout함수로 5초뒤 setState를 이용해 isLoading을 false로 바꿔준다. 6초뒤 브라우저는 Loadi..