Pull to refresh
15
0.6
Send message

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

на первом месте идет язык разметки - 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, все как вы просили. Хотя функциональная нотация более гибкая, обновил доки, почитайте.

Когда вы задаете новое значение в своем стейте, будь он в MobX или же в setState. Вы вызовом этой функции тригеррите обновление. То-есть вызываете обновление вручную.

Согласен что вэб компоненты это очень важное и нужное подспорье для нас, как вэб разработчиков. И фреймворки и компоненты имеют пересекающийся функционал. Но то что они прекрасно могут работать вместе это факт. Например фреймворк отвечает за создание и обновление DOM внутри компонента, а компоненты отвечают за общую структуру документа и композицию.

React кстати был не совсем совместим с вэб компонентами, также в нем дублируется логика жизненного цикла, и еще он тяжеловесен.

Некоторое время назад я начал разработку легковесной библиотеки для создания и обновления DOM. Фундаментально она схожа с React, но без этих недостатков. Так что предполагаю что она могла бы быть идеальным помошником для написания вэб компонентов https://github.com/fusorjs/dom

Во-первых, HTML это удобная текстовая репрезентация объектной модели документа. Во-вторых, я считаю что react-native и подобные ему гибридные подходы скоро уйдут. Так как они по сути являются попыткой пере-изобретения велосипеда истинно кроссплатформенной среды вэб броузера. Поводом их создания было недостаточное количество поддерживаемых фич и скорости работы броузера. С тех времен много воды утекло и теперь 90% нативных приложений может быть реализовано как PWA https://whatpwacando.today/

Создавайте PWA приложение в следующий раз. Оно может 99% того же что и нативное. Устанавливаетя без стора и выглядит как нативное.

Можно на локалхосте сервер развернуть, у вас все-равно датчик где-то должен жить.

И плюсом получаете мультиплатформенность (андроид, виндовс, линукс, макось).

В Реакте вы также вручную обновляете компонент, JSX или "функциональная нотация" мало чем отличаются.

Information

Rating
1,760-th
Registered
Activity

Specialization

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