Vidom — blazingly fast alternative to React

Давненько я нічого тут не писав, а сьогодні якраз п'ятниця, так що можна накинути на React розповісти про свою виробі Vidom.
Коротка історія
Коли тільки React входив в стадію хайпи (початок 2014 року), ідея virtual dom, а також всього з ним пов'язаного (диффы, патчі), здалася мені дуже цікавою і я вирішив усвідомити її і відчути через свою власну реалізацію. Я подивився існували на той момент імплементації, зробив кілька підходів, переписуючи все кілька разів з нуля, щоб досягти максимально продуктивності. Потім, поступово, з'явилися компоненти, хуки, контексти, серверний рендеринг, es2015 і т. д. Потім я подивився що людям в React доставляє біль при використанні, і одними з найпопулярніших проблем було: продуктивність серверного рендеринга і відсутність підтримки фрагментів (цього сум у трекері реакта вже майже два роки!). Засукавши рукави, я додав підтримку фрагментів. А продуктивність ssr в Vidom спочатку була в нього закладена, результат бенчмарка можна побачити нижче.
В результаті вийшло:
Vidom схожий на React
  • віртуальний DOM під капотом
  • jsx
  • можливість створювати свої високорівневі компоненти, як на основі класів, так і на основі функцій
  • lifecycle-хуки у компонентах на основі класів
  • легка підписка на DOM-події
  • context api
  • ізоморфізм, ssr, можливість реиспользовать розмітку, що прийшла з сервера
  • плагін для chrome developer tools
Vidom відрізняється від React
  • швидкість, швидкість і ще раз швидкість
  • цільова платформа тільки браузери
  • підтримка фрагментів, що дозволяє, наприклад, з одного компонента повертати кілька інших (без непотрібних, і, часом, заважають DOM-обгорток) або маніпулювати кількома нодами, в тому числі і DOM, як однієї.
  • немає необхідності розставляти key в простих випадках при використанні масивів
  • розмір бібліотеки (приблизно 10Кб після gzip)
  • відсутні propTypes
  • відсутні, і це головний мінус, тисячі супутніх бібліотек, таких як, react-router, react-redux і т. п. :)
Бенчмарки
Repaint rate challenge
Server-side рендеринг (node v4.4.3, NODE_ENV=production):
image
Проект на github: vidom
Готовий відповісти на ваші запитання, а також побачити issue і pull request на github ;)
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.