\(@^0^@)/

[TDL] 04/26 Today's-Done-List 본문

TDL

[TDL] 04/26 Today's-Done-List

minjuuu 2022. 4. 26. 23:06
728x90


- JS 기본 문법

// 요소 추가
let div = document.createElement("div");
let p = document.createElement("p");
let span = document.createElement("span");
div.append(p);
div.prepend(span);

console.log(div.childNodes); // NodeList [ <span>, <p> ]

// 텍스트 추가
let div = document.createElement("div");
div.append("Some text");
div.prepend("Headline: ");

console.log(div.textContent); // "Headline: Some text"

// 요소, 텍스트 추가
let div = document.createElement("div");
let p = document.createElement("p");
div.prepend("Some text", p);

console.log(div.childNodes); // NodeList [ #text "Some text", <p> ]

 



- 
JavaScript infinite-scroll

  • api url 변경
const limit = 10
let page = 1

const getPost = async () => {
    const API_URL = `https://jsonplaceholder.typicode.com/posts?_page=${page}&_limit=${limit}`
    const res = await fetch(API_URL)
    if (!res.ok) {
      throw new Error('에러')
    }
    return await res.json()
  }
  • 스크롤 끝부분 감지
    • 어제 했던 프로그래스 바와 같이, scrollTop, scrollHeight, clientHeight의 값을 구한다.
    • scrollHeight에서 -5를 하면 맨 밑에서 5px 떨어진 길이가 되는데,
      만약 scrollTop + clientHeight가 scrollHeight보다 같거나 커진다면 스크롤이 맨 아래로 내려온 것이기에
      한 페이지를 추가해주고 total을 10개 추가하여 load 시켜준다.
    • 이렇게만 구현한다면, 내가 가진 데이터를 모두 보여주고도 스크롤이 계속 적용됨.
      이것을 방지해주기 위해 모든 데이터가 렌더 되었다면 (스크롤이 끝까지 내려갔다면) 스크롤 이벤트를 remove.
const end = 100
let total = 10
let page = 1
  
const onScroll = () => {
    const { scrollTop, scrollHeight, clientHeight } = document.documentElement
    if (total === end) {
      window.removeEventListener('scroll', onScroll)
      return
    }
    if (scrollTop + clientHeight >= scrollHeight - 5) {
      page++
      total += 10
      loadPost()
    }
}


17:50 오후 회고 스터디 (만족도 : 6)

저번 주부터 약속도 많고, 날씨도 좋다 보니까? 많이 풀어졌다... 너무 해이해졌다.
이제 놀만큼 놀았으니, 마음 단단히 먹고 피시 카톡도 열지 말고 공부에 집중을 해보자꾸나. (내일 약속 있다는 게 함정)

그리고, 어떤 것을 구현하다가 잘 안 된다 싶으면 바로 해답을 보기보다 구글링을 해보고, 노트에도 적어보면서 생각을 좀 한 뒤에 해답을 보는 습관을 들이자. 실무에는 해답이 존재하지 않는다고!



- 자료구조 / 알고리즘 (Js ver.) 강의



22:50 저녁 회고 스터디 (만족도 : 6)

집중 잘하다가 조금만 쉰다는 걸 너무 오래 쉬어버렸네....^^


[ 출처, 참고 : 제로베이스 프런트엔드 스쿨 ]

 

728x90

'TDL' 카테고리의 다른 글

[TDL] 04/29 Today's-Done-List  (0) 2022.04.29
[TDL] 04/28 Today's-Done-List  (0) 2022.04.29
[TDL] 04/25 Today's-Done-List  (0) 2022.04.25
[TDL] 04/22 Today's-Done-List  (0) 2022.04.22
[TDL] 04/21 Today's-Done-List  (0) 2022.04.21