Pull to refresh

Fusor vs React

Reading time2 min
Views5.2K

Моя работа состоит в написании кода на 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

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

До свидания!

Tags:
Hubs:
Total votes 15: ↑11 and ↓4+13
Comments41

Articles