Pull to refresh
8
0
Send message
Кхе :) уж лучше на HTML+js, тем более что и синтаксис придумывать не придётся
Было бы интересно посмотреть решение на dap стандартной задачи типа Todo-MVC, чтобы было с чем сравнить.
Вот уже и аннотации пошли, ужес. JS ведь в них не нуждается, он и так выразителен до невозможности, до переизбыточности.
Сомневаюсь, что классы понадобились странным людям из Java…
Эти люди знают, что наследование нужно для полиморфизма а не для исключения копипасты.
Полиморфизм в языке с утиной типизацией штука не сильно нужная, как и само понятие Class, потому что Class — это пользовательский тип (для странных людей из Java).

Кто-то, когда-то нас всех обманул, объявив Javascript объектно-ориентированным (такая тогда была мода), хотя по сути он является мощным, динамическим и красивым процедурным языком. В этом его сила!
Представьте себе — всё то, что Вы перечислили и списки и элементы с событиями и в них ещё элементы и списки в них и тоже с событиями летает как родное (потому что родное),
а на фоне у этого всего анимированная канва с 60 fps и туча целевой арифметики с интерполяциями и элементами ИИ, тупо работает само на не самом мощном ноутбуке.
После нескольких упражнений, я в конце концов отказался от React, Virtual DOM и шаблонов, в пользу реального DOM и макетов. Написал маленькую библиотеку и построение UI опять стало весёлым развлечением.
Современные браузеры уже настолько сами заоптимизированы, что не аффектят rendering если свойство реально не поменялось, и вместо того чтобы оптимизировать оптимизацию, можно просто назначать свойства и устанавливать атрибуты.
Время на скриптинг падает в несколько раз при неизменном времени на рендеринг.

Специально для Вас придумал кейс, Вы мне теперь должны что-нибудь :)
если очень, прямо вот именно так надо — хоть дерись :


<div as="video">
    Кина не будет!
</div>

<div as="app">
    <video></video>
    <video></video>
</div>

В результате как-то так


<div>
    <div>
        Кина не будет!
    </div>
    <div>
        Кина не будет!
    </div>
</div>

Друзья, написал HowTo, как сумел.
Там в комментариях постараюсь отвечать на вопросы, если таковые возникнут

В пределах модуля, если хотите или считаете нужным для решения вашей задачи
Это не кастомные элементы, имена определяемых тегов актуальны только в пределах одного модуля, за его пределы не выходят. W3View предоставляет вам любую свободу, даже позволяет в своём контексте переопределять любые имена тегов, хоть DIV, — всё для вас и всё на ваше усмотрение.
Походу поспешил с благословением, за шаблоны-незачёт
Утомились поди читать, даже синтаксис увидели где-то :)
— Svelte — годная идея компилить всё в JS, я от неё отказался — чтобы в бандле было меньше килобайтов, оставил все эти createElement и appendChild в библиотеке.
— shared.js — тоже не ноль наверное, что ни будь да весит.
— Синтаксис пожалуй в пару абзацев не уложить.
В прочем зачётный выбор, благославляется.
Я пожалуй ещё статейку накропаю, мне понравилось
Ничем, оно другое совсем и для других целей
Насчёт «собственных» велосипедов, если уже зашла речь, — эта библиотека скорее самокат (поэтому много велосипедов в ней не поместилось), и уж точно не содержит термоядерных мега-костылей, которыми полны «чужие» велосипеды.
Стандарт не запрещает кастомные атрибуты, использование стандартных атрибутов типа «name» или «id» в данном ключе ещё более неправославно, префикс «data» семантически не соответствует назначению.
Контекст скрипт-тега указывает на узел DOM, являющийся экземпляром компонента, к этому легко привыкнуть.
Библиотека не предназначена для замены/альтернативы Web Components.
2 kB — это не не так много, раз в 10 меньше, чем обычно тянут для такого-же назначения
Вы создаёте Shadow Root с помощью document.CreateElement? — уважаю, я тоже люблю настоящий хардкор.
1. То, что Вы не поняли в чём моё решение — полностью моя вина, признаю и каюсь, эпистолярный жанр -не относится к моим сильным сторонам.
2. Библиотека не предназначена заменить собой Web Components.
3. Она может помочь при создании Shadow Root. Способом полностью основанным на давно принятых и действующих стандартах.
4. Она так-же может быть использована и вне контекста Web Components.
5. Инкапсуляция стилей не является задачей W3View, см. пп. 2 и 3
6. Возможно мне действительно стоит добавить примеры кода в статью, или написать ещё одну статью с развёрнутым how to, дабы снять в дальнейшем подобные недопонимания.

осторожнее с пет проектами на W3View :), Вас может начать тошнить от %ваш_любимый_фреймворк% — проверено лично.

если правда интересно, -в статье есть ссылки, постараюсь развёрнуто ответить на Ваш вопрос сегодня вечером.

Если существует возможность, значит существует опасность

Вы сами, -не находите, что приведённый Вами аргумент выглядит не убедительно и даже наверное смешно?
Я повторюсь — Web Components — это хорошо но для других целей.

Information

Rating
Does not participate
Registered
Activity