Использовать прокси для извлечения элементов DOM - PullRequest
0 голосов
/ 21 мая 2018

недавно я реорганизовал один из моих предыдущих проектов, где я написал 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 напрямую, используя их идентификаторы, не определяя их!Я ничего не знал об этом раньше.

Извините, я знаю, что это выглядит как два разных вопроса, но я действительно хочу, чтобы вы, ребята, могли поделиться некоторыми знаниями об этом.

...