Fusor vs React

Моя работа состоит в написании кода на React. Несмотря на то, что мне нравится React, при разработке на нем я столкнулся с некоторыми его недостатками. В связи с этим, я решил создать свою библиотеку, Fusor, чтобы исправить эти недостатки и вот что из этого получилось.

Нашел один фатальный недостаток и решил запилить своё с блэкджеком…

Не люблю лишних разговоров поэтому перейду ближе к телу наших подопытных.

Разделяй и властвуй

Он же принцип единой ответственности (single-responsibility principle) из одной «малоизвестной» методологоии — SOLID.

Он же принцип разделения ответственности (separation of concerns).

ROUND 1, FIGHT!

Зона ответственности

Fusor

React

Создание компонента

create ()

create_update ()

Изменение состояния

state = x

setState (x); create_update ()

Обновление компонента

update ()

setState (x); create_update ()

Это псевдокод

Как видно, у React с разделением не задалось.

«Ну и что с того?» — скажете вы.

А то что…

Проблемки имеются

ROUND 2, FIGHT!

Зона ответственности

Fusor

React

Данные компонента

Создаются один раз

Пересоздаются на каждый чих/обновление

Сайд-эффекты

Меняй данные и обновляй

Сложная и «многословная» логика хуков

Обновление

Где и когда нужно

Не явное и тяжеловесное

Контекст

Не нужен

Нужен

Размер

~2kB

~44kB

Вот что бывает если не следовать базовому принципу программирования. Не зря в SOLID он на первом месте.

«Но ведь благодаря этому 'тежеловесу', облегчается жизнь нам, разработчикам, так?»

.

.

.

Нет.

Меньше слов, больше дела

ROUND 3, FIGHT!

Fusor vs React counting button

Fusor vs React counting button

По моему результат на лицо. React многословнее чем Fusor.

useCallback в этом простом премере потому что, во Fusor, click хэндлер тоже не меняет свой указатель.

Итог

React сложнее и тяжелее чем Fusor.

«Зато React используют газилионы разработчиков и тонны библиотек под него уже написаны.»

Да, вот только до React, газилионы разработчиков использовали и писали библиотеки на JQuery, а до него вообще генерировали страницы на PHP. Время течет, мир меняется.

«Что, теперь переучиваться?»

Нет. Если вы знаете React, то вы уже знаете Fusor, и еще кучку лишних концепций из React.

У меня всё.

Ссылочка на репозитарий Fusor: https://github.com/fusorjs/dom

Всем спасибо за внимание!

До свидания!

© Habrahabr.ru