А можно развернуть мысль? Про разницу в разработке и использовании условно олдскульных (на атрибутах) и условно молодёжных (на свойствах) кастомных элементов
Можно. Начну с того, что молодёжность тут действительно “условна”. Оба подхода очень стары 🙂 Мой поинт был в том, что эти два подхода надо использовать одновременно, выбирая инструмент под задачу. Использование обычных атрибутов позволяет не привязываться к фреймворку вообще, по сути мы просто пишем HTML, а внутри элементов работает необходимая логика. Вы удивитесь, какое ОГРОМНОЕ кол-во задач можно решить чисто на Custom Elements API. А еще элементы могут понимать контекст и менять свою логику на его основе (вспомните обычный HTML, там такого хватает). Это супер просто, интуитивно, и позволяет значительно облегчить основной код приложения. Однако, этот подход совершенно не решает проблему композиции, так как это просто вёрстка. И вот тут пропсы (куда можно кидать сторы или чистые объекты/массивы) показывают свою сильную сторону. И тут также за дело уже берётся любой композиционный фреймворк (Vue, Angular, React и т.п.), который всё это запускает. Если интересно подробнее и с примерами, я на прошлой неделе читал доклад на эту тему на Vue MSK митапе, есть видео, могу скинуть в личку. У нас весь проект таким образом написан и в докладе я как раз про это рассказываю.