Rails та React: Золота середина (Частина 1)

4 хв. читання

Замітка перекладача: Стаття мені дуже сподобалась, тому вирішив спробувати себе у ролі перекладача. Переклад виконав у вільному стилі, із всіма побажаннями і неточностями прошу звертатись у наш чат або в коментарі.

З того часу, коли я обрав Ruby on Rails своїм основним фреймворком для розробки, я використовував багато різних способів, щоб покращити інтеграцію мого фронт-енду в мої проекти. І ця задача - один із холіварів, які точаться від того часу, відколи Rails надав можливість вільно обирати те, що тобі більш до вподоби, тому зараз існує безліч різних рішень: деякі з них надають перевагу використанню JavaScript MV- frameworks, а деякі ні.

Я зрозумів яке рішення мені подобається найбільше декілька місяців тому, коли читав статтю Rails with no JS framework, де автор розкриває думку, чому використання MV- фреймворків не завжди потрібне. Основним аргументом є те, що не всі додатки вимагають складної бізнес-логіки на стороні клієнта, тому автор показує нам по-справжньому хороший спосіб організації нашого JavaScript коду, використавши лиш такі хороші засоби, які ми вже використовуємо - jQuery, CoffeScript та Turbolinks. І те, що вийшло у автора було настільки крутим, що від тоді я почав це використовувати у всіх своїх проектах.

Золота середина

Я повністю згідний із думкою Christian Blavier стосовно того, що використовувати клієнтські фреймворки, такі як Backbone, AngularJS або EmberJS, потрібно лиш тоді, коли це по-справжньому необхідно. Всі ці бібліотеки є комплексними (complex), і так як я розробник і обожнювач Rails, я хотів би використовувати лиш хороші їхні частини, а не просто мати API додаток, який всього лиш віддає json.

Але будучи фул-стек розробником, я також люблю бути креативним стосовно клієнтської сторони додатку, і створювати настільки інтерактивні інтерфейси, наскільки це дозволяє UX, тому JavaScript я використовую все більше і більше. Але декілька місяців тому я шукав якусь простеньку, але потужну бібліотеку для свого майбутнього проекту, яка буде прекрасно працювати у поєднанні із Rails. І тоді я натрапив на React...

React - лиш V у шаблоні MV*

React - JavaScript бібліотеки для розробки користувацьких інтерфейсів від людей з Facebook, які розробили і використовували її у своїх проектах, і зробили її open-source, коли вона стала достатньо стабільною. Основними відмінностями від інших фреймворків і бібліотек є:

  • React зосереджений на компонентах.
  • Кожен компонент також має свій стан (state), який може змінюватись, і коли це відбувається - компонент рендериться наново.
  • Кожен компонент має функцію render.
  • Замість того, щоб використовувати шаблонізатори, компоненти пишуться на звичайному JS, ну і JSX для рендерингу.
  • React робить по-справжньому потужним і швидким те, яким чином він рендерить компоненти, коли їхні властивості (props) та стан змінюються. Замість того, щоб проводити маніпуляції із існуючим DOM'ом, як інші фреймворки це роблять, він використовує так званий віртуальний DOM.
  • Коли стан компонента змінюється, Reactjs перевіряє на наявність відмінностей віртуальний DOM та наявний DOM, та застосовує лише ці відмінності, а не перерисовує цілий DOM. Що ж, уявімо собі, що віртуальний DOM - щось на кшталт GIT для DOM.
  • Компоненти можна вкладати один в одного, тому ви можете писати по-справжньому маленькі компоненти, які можна використовувати знову і знову, і які будуть передавати дані та їх обробку (bind event) від батьків до потомків (from parents to children).

Висновок

Мені дійсно подобається React. Після кількох місяців написання компонентів для мого нового пет проекту, я почуваюся досить зручно із ним, та дійсно задоволений кінцевим результатом. Не складе жодних проблем розібратись із тим як він працює, і як його використовувати у тих представленнях (views), де є необхідність у незвичній поведінці, але не настільки, щоб використовувати повноцінний MV- фреймворк. У наступній частині я напишу справжній приклад того, як інтегрувати React у Rails і створю деякі компоненти, які можна буде використовувати знову і знову, що ж залишайтесь на хвилі :)

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 5.6K
Приєднався: 8 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація