недавно я реорганизовал один из моих предыдущих проектов, где я написал ES5.Были части, где мне приходилось извлекать элементы DOM, используя document.getElementById (id) по их идентификатору
И затем я рефакторинг кода с использованием прокси-сервера ES6.Например, у меня есть HTML-файл, содержащий
<div class="bottom">
<div class="add">
<div class="add__container">
<select class="add__type" id="addType">
<option value="inc" selected>+</option>
<option value="exp">-</option>
</select>
<input type="text" class="add__description" id="addDescription" placeholder="Add description">
<input type="number" class="add__value" id="addValue" placeholder="Value">
<button class="add__btn" id="addButton">
<i class="ion-ios-checkmark-outline"></i>
</button>
</div>
</div>
, затем я использовал прокси-сервер для получения DOM, как это
const {
addType,
addDescription,
addValue,
addButton,
budgetContainer,
budgetIncomeList,
budgetExpensesList,
budgetValue,
budgetIncomeValue,
budgetExpensesValue,
budgetExpensesPercentage,
monthLabel,
} = new Proxy({}, { get(_, id) { return document.getElementById(id); } });
Это сработало, но мне было интересно, если это хорошая практикадля извлечения элементов DOM.
Также я обнаружил, что после того, как я закомментировал извлекаемую часть кода, то есть приведенный выше фрагмент с Proxy.Я все еще могу получить доступ к элементам DOM в моем файле Js напрямую, используя их идентификаторы, не определяя их!Я ничего не знал об этом раньше.
Извините, я знаю, что это выглядит как два разных вопроса, но я действительно хочу, чтобы вы, ребята, могли поделиться некоторыми знаниями об этом.