В ответе на вопрос каскадные таблицы стилей используют идентификатор или класс для идентификаторов
Добавьте идентификатор к элементу, если "это ..." (например, навигация)
и еще один комментарий:
Из-за этого идентификаторы можно использовать только один раз (на странице), но элементы можно классифицировать несколько раз. Также элемент может иметь только один идентификатор, но несколько классификаций. Однако элементы можно идентифицировать и классифицировать.
При использовании shadow dom, можно ли использовать часть идентификаторов один раз (на странице)? Например, простой способ получить элементы в компоненте - дать каждому идентификатору, уникальный для компонента, и запросить их:
В html:
<input id="amount" placeholder="Amount" on-change="{{recalc}}"></input>
<input id="term-years" placeholder="Term (yrs) e.g. 30" on-change="{{recalc}}"></input>
<input id="rate" placeholder="Interest Rate" on-change="{{recalc}}"></input>
В коде Dart:
termYearsElm = shadowRoot.querySelector('#term-years');
amountElm = shadowRoot.querySelector('#amount');
rateElm = shadowRoot.querySelector('#rate');
При игре с этим несколько экземпляров компонента не конфликтуют. Этот подход безопасен или плохая идея? Если это безопасно, изменились ли правила для идентификаторов?