Подтвердить что ты не робот

Реагировать на альтернативы

Мы используем фреймворк JavaScript MVC, основанный на событиях, в нашем приложении, но с проблемами производительности с большими наборами данных. Мы применили многие из тех же методов, которые использовались в Реаге, чтобы облегчить наши проблемы (рендеринг с интервалами, сравнение состояния данных и обновление только того, что изменилось), но я беспокоюсь, что мы идем по пути реализации наших собственных, фреймворк. Прежде чем мы примем React для наших данных с большими пользовательскими интерфейсами, каковы альтернативы?

4b9b3361

Ответ 1

Отъезд RiotJS. Это супер-легкий (всего несколько килобайт), и это проще использовать.

Riot приносит пользовательские теги ко всем браузерам, включая IE8. Think React + Polymer, но с приятным синтаксисом и небольшой кривой обучения.

Ответ 2

Странно, никто еще не упомянул Vue.js
Vue.js - это библиотека для создания интерактивных веб-интерфейсов. Он обеспечивает реагирующие на данные компоненты с помощью простого и гибкого API.
Awesome Vue.js - кураторский список удивительных вещей, связанных с Vue.js
Это прямо сейчас!

Ответ 3

Вы можете рассмотреть некоторый слой поверх React для лучшего управления состоянием.

  • Om - хорошая библиотека, если вы в порядке с ClojureScript, вы можете прочитать об этом больше в author блог;
  • Quiescent - легкая абстракция ClojureScript над React;
  • Reagent - минималистический интерфейс ClojureScript для реагирования;
  • Morearty.js - централизованное управление состоянием для React в чистом JavaScript.

Эти библиотеки используют неизменяемые структуры данных для представления вашего состояния и определяют метод shouldComponentUpdate для каждого компонента, который просто выполняет сравнение с помощью быстрого оператора ===. Эта оптимизация должна обеспечить большую скорость для вашего мощного пользовательского интерфейса, в то время как разумные средства управления состоянием должны быть очень полезны при организации и поддержке вашего кода. По моему опыту, очень сложно управлять изменчивым состоянием, разбросанным по компонентам.

Ответ 4

Недавно я обнаружил Deku

Ответ 5

Самым известным, конечно, является Angular JS, который поддерживается Google (не это важно, но я просто подумал, что это интересно, учитывая, что Facebook делает React). Для углубленного сравнения двух см. эту ссылку.

Вот несколько других опций:

Ответ 6

вы можете попробовать http://www.ractivejs.org/, он использует ту же концепцию виртуального dom, что и facebook response

цитата из блога ractive http://blog.ractivejs.org/posts/whats-the-difference-between-react-and-ractive/

Самое яркое сходство - использование виртуального DOM. подобно Ractive, React обнаружил, что создание абстрактного представления DOM позволяет проводить молниеносные операции, сводя к минимуму количество манипуляций с DOM (узкое место в большинстве webapps), которое необходимо иметь место. Это также облегчает рендеринг на стороне сервера без каких-либо от сумасшедших хакеров, которые должны были использовать другие инструменты.

Ответ 7

Прежде чем сбрасывать существующий код, вы можете попробовать интегрировать React в ваше приложение MVC как только слой представления. Например, интеграция с базой очень проста:

Кажется, нет никаких готовых к производству альтернатив React, которые дают вам только "V" в MVC. Хотя есть интересные идеи там.

Чтобы ответить на ваш вопрос, Mithril - это структура MVC, которая использует виртуальную DOM и имеет хорошую документацию.

Если у вас уже есть проблемы с производительностью при рендеринге большого количества элементов, переход на что-то вроде Angular, Ember или RiotJS вряд ли будет самым прямым путем к исправлению.

Update

Deku и CycleJS также являются опциями.