All streams
Search
Write a publication
Pull to refresh
12
0.2
Send message

Интересная задумка!
Вообще CSS сделан чтобы с помошью селекторов и "немножно" стилей, застилизовать большое количество HTML. CSS обычно статичен, HTML обычно генерируется.
Как вы предлагаете сгенерить например динамический список каточек с данными из одного описания CSS?
ПС: сам разрабытываю альтернативу React :)

Плюсанул, но не понял зачем с Модулями еще и БЭМ использовать?

Очень интересный подход! Возьму себе на вооружение. Это это выглядит более удобно, кратко и семантически корректно и с нативной производительностью.
Мне тоже уже порядком надоели всевозможные штучки типа (BEM,SASS,TAILWIND,CssInJs), которые привносят дополнительную когнитивную нагрузку и бьют по производительности. Когда нативный HTML/CSS уже научился делать все вещи для которых они создавались изначально. Пользуюсь только CssModules.
ПС: Также разрабатываю сейчас замену переусложенному React/Solid https://github.com/fusorjs/dom

Лучше бы установку как приложения (PWA) завезли...

Вы не забудьте что пользовательская функция внутри useCallback будет создаваться новая на каждый рендер вне зависимости от того что находится в массиве зависимостей. Например: useCallback((() => {console.log('Created new function'); return () => {};})(), []). Этот хук нужен лишь для того чтобы хранить указатель на функцию. Именно поэтому я в процессе экспериментов переосмыслил Реакт без использования хуков и с гибким рендером, что вылилось в небольшую библиотечку https://github.com/fusorjs/dom

Хейт по отношению к программистам идет из двух источников. Один как вы описали из элитарности, непонятности и уровню оплаты. Но второй источник хейта, возможно неосознаный, идет из подкорки, источник гораздо более сильный. Видите ли, программисты это те кто и являются причиной сокращения профессий. Не пиши код программисты, целые индустрии бы сохранились.
Я будучи программистом, иногда ловлю себя на мысли: "останивитесь, что-же вы делаете, вы же рубите сук на котором сидите", адресованной программистам ИИ. "Он же нас заменит, а потом и вас"...
Но прогресс не остановить, и это наверное хорошо. Чем больше видов деятельности человеческой устаревает, тем еще больше появляется.

на первом месте идет язык разметки - html, а javascript так и остался на подхвате

Это просто так кажется из-за

frontend framework предлагает свой, так называемый, декларативный язык

Это да, так во Vue, Angular, Svelte... Вам нужно попробовать React, там такого нет, мне тоже не нравятся все эти DSL и лишняя ментальная нагрузка с этим связанная

мы потеряем все то многообразие вариантов красочного и анимированного оформления

Совсем не обязательно его терять, CSS может жить своей своей жизнью в отдельном файле

ui-organizer не предназначен для создания компонентов

Похоже на JSX, только в виде объекта.

когда данные на странице, связаны с данными компонента

Хотел предложить другой подход, когда данные на странице <div>{() => count}</div> связаны с данными JavaScript let count = 0

Или же, если вы хотите чистый JavaScript, то так div(() => count), назвал функциональной нотацией

Оба подхода будут работать в https://github.com/fusorjs/dom

Спасибо за вашу разработку, пишите еще!

Вообще понять о библиотеке лучше всего можно как раз по таким простым примерам. И они все покрыты в документации. Если вам не хватает какого-то конкретного кейса, то милости прошу, приведите пример.

А то что вы хотите увидеть тяжелое приложение с кучей зависимостей, это ничем вам не поможет, только субъективно оценить производительность. Поэтому у меня в планах сделать сравнительный бенчмарк, для объективной оценки производительности.

Во Fuser стейт это просто переменная Javascript let x = 0, во Vue это срытый и более сложный механизм на подобие хуков.

В Реакте вы тоже делаете ререндер вручную, вызовом setState(x). Видите насколько это не явно?

Во Fuser, во первых все явно state = x; update();, а во вторых более просто в имплементации.

В реакте тоже самое

Кстати, в репе на гитхаб есть еще несколько ссылок на примеры побольше, и на два полноценных приложения. И документации уже накопилось порядочно.

Да, это уже в планах

Все когда-то начиналось с маленького...

Я один человек с основной работои и семьей. То что вы описали под силу множеству людей. Поэтому-то я и пытаюсь продвинуть этот проект в массы. Так что если поможете, я буду очень вам благодарен.

Примерно так. Фьюзор обновит только динамические области, и только если значение поменялось. Чтобы не нагружать зря DOM.

state = x это просто яваскрипт присваевает значение переменной, и никакой скрытой магии

Каждый стейт обычно относится к своему элементу, поэтому лучше и обновлять их по отдельности.

Но можно сделать и так: https://codesandbox.io/s/fusor-analog-clock-jsx-hqs5x9?file=/src/index.tsx

А можно не заморачиваться и инициировать проверку обновления всего приложения с корня, сделав throttling (как примерно у Реакт).

Вся прелесть в том, что теперь есть контроль над процессом обновления.

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

Обновил его доки, добавил JSX

Кстати да, пришло осознание что реакту (компонентам/хукам) нужен контекст. Вне его они работать не будут. Фьюзору контекст не нужен. Ему нужен только ДОМ. Поэтому его функции/компоненты очень гибкие, их можно использовать в любом контексте.

Добавил поддержку JSX. Улучшил документацию.

Любой шаблонизатор как во Vue, Angular, Svelte - это лишняя когнитивная нагрузка. У нас уже есть язык программирования Javascript. В нем уже есть if, else, while...

Добавил поддержку JSX, все как вы просили. Хотя функциональная нотация более гибкая, обновил доки, почитайте.

Information

Rating
2,644-th
Registered
Activity

Specialization

Fullstack Developer, Web Developer
Senior
JavaScript
HTML
CSS
React
TypeScript
Node.js
SQL
Linux
NoSQL
English