JavaScript에서 HTML 요소에 대한 데이터를 저장하는 방법
4859 단어 domwebdevjavascript
처음으로 다음과 같이 요소 개체 자체에 데이터를 저장하는 아이디어를 생각해 냈을 것입니다.
const setElementData = (el, data) => {
el.$dataKey = data;
}
const getElementData = (el) => {
return el.$dataKey;
}
// Usage
setElementData(document.querySelector('#some-el'), {
prop1: 'val',
prop2: someComplexValue
});
// Somewhere
const elData = getElementData(document.querySelector('#some-el'));
이 방법이 효과가 있더라도 좋지 않습니다. 요소 개체에 사용자 지정 소품을 추가하는 것은 권장되지 않으며 올바르게 수행되지 않으면 메모리 누수가 발생할 수 있습니다.
그렇다면 올바른 방법은 무엇입니까?
올바른 방법은
WeakMap
를 사용하여 요소에 대한 데이터를 저장하는 것입니다. 코드는 다음과 같을 것입니다const elementDataMap = new WeakMap();
const setElementData = (el, data) => {
elementDataMap.set(el, data);
}
const getElementData = (el) => {
return elementDataMap.get(el);
}
// Usage
setElementData(document.querySelector('#some-el'), {
prop1: 'val',
prop2: someComplexValue
});
// Somewhere
const elData = getElementData(document.querySelector('#some-el'));
이렇게 하면 메모리 누수를 일으키지 않고 요소에 대한 데이터를 저장할 수 있습니다.
WeakMap
가 무엇인지 모른다면, check out the MDN docs .안녕!
Reference
이 문제에 관하여(JavaScript에서 HTML 요소에 대한 데이터를 저장하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sarsamurmu/how-to-save-data-for-a-html-element-in-javascript-4bp8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)