Class로 모듈화 하기

import { makeDOMwithProperties } from '/directory/test.js'

	const noticeDOM = makeDOMwithProperties ('div', {
        innerHTML : '내용 없음',
        className : 'product-list-con'
    });

 

export const makeDOMwithProperties = (domType, propertyMap) => {
    //domType : div, a , li...
    //propertyMap : {"className" : "product-card", "alt"...}

    //Object.keys() 란? --- 키 값을 배열로 넘김
    //예시) Object.keys(propertyMap) ---> ["className", "alt"] 
    
    const dom = document.createElement(domType)
    Object.keys(propertyMap).forEach((key) => {
        dom[key] = propertyMap[key];
    });

    return dom;
}

export const appendChildrenList = (target, childrenList) => {
    if (!Array.isArray(childrenList)) return; //early return이라고 한다. if/else 구문은 길어지기 때문에, 아닌 경우만 먼저 솎아낸다.

    childrenList.forEach((child) => {
        target.appendChild(child); //childrenList의 배열에 들어있는 children을 붙임
    })
};

 

 

 

 


 

 

 

브라우저 저장소

 

LocalStorage

  • 브라우저를 닫아도 데이터가 유지된다.
  • 동일한 도메인에서만 접근할 수 있다. (Same-Orgin Policy)
  • 간단한 인터페이스로 사용하기 쉽다.

 

  • 브라우저 당 약 5MB 정도의 저장 공간만 가질 수 있다.
  • 문자열만 저장 가능하며, 객체나 배열 등의 데이터 구조를 저장할 수 없다.

 

 

SessionStorage

 

  • 임시로 데이터를 저장하여 같은 탭이나 창 간 데이터를 공유할 수 있다. 
  • 동일한 도메인에서만 접근할 수 있다. (Same-Orgin Policy)

 

  • 브라우저를 닫으면 (세션을 종료하면) 데이터가 삭제된다.

 

 

IndexedDB

 

  • 객체 지향형 데이터 베이스로 구조화된 데이터를 저장할 수 있다.
  • 비동기적(Asynchronized)으로 데이터를 읽고 쓸 수 있기 때문에 대량의 데이터를 처리할 수 있다.
  • 동일한 도메인에서만 접근할 수 있다. (Same-Orgin Policy)

 

  • 사용자에게 데이터 관리 책임이 있다.
  • 사용하기 복잡하다.
  • 구형 브라우저에 지원되지 않을 수 있다.

'개념 정리' 카테고리의 다른 글

javascript - reduce()  (1) 2024.10.28
새로운 리액트 프로젝트 생성하기  (0) 2024.10.16
HTML의 noreferrer, nopener, nofollow  (0) 2024.01.21
Flex와 Grid  (0) 2024.01.21
반응형 작업과 mediaquery 최소화  (0) 2024.01.21

+ Recent posts