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

Scalajs-реагируют VS Xored Scalajs-реагируют VS SRI

В чем разница между этими библиотеками Scala.js React.js и почему я должен выбирать один из них?

  • Xored Scalajs-response - Последнее совершение было 8 месяцев назад. Поэтому я предполагаю, что разработка уже неактивна.
  • Scalajs-react - Очень активный и очень полный и поставляется с настраиваемым URL-маршрутизатором. Но API, похоже, уходит от того, как написан настоящий код Javascript React, и нет поддержки React-native, и добавление Scalaz и Monocle подпитывает библиотеку, увеличивает размер Javascript, который должен загружать браузер. В документе говорится, что Scalaz и Monocle отказались, поэтому я предполагаю, что по умолчанию Scalaz и Monocle исключены? Я лично считаю, что эта библиотека может просто быть очень простым фасадом для кода React.js, который упростил бы обновление до более новой версии React.js, и это не простой фасад, а означает больше кода Javascript, который будет генерироваться и более кода браузеру придется загружать. Возможно, я ошибаюсь, пожалуйста, поправьте меня?
  • SRI - новичок и фасады выглядят очень полно и имеют поддержку для Web, Relay и React native, но не имеют поддержки URL-адресов Router и DOM DSL. API-интерфейсы фасадов выглядят очень скудными и очень похожими на код Javascript React.js. Но это довольно новое и может быть не готово к производству?

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

4b9b3361

Ответ 1

По состоянию на октябрь 2015 года:

  • Я также заключаю, что xored/scala-js-react в настоящее время не активно развивается. Подход, используемый для шаблонов, заключается в том, чтобы сохранить синтаксис XML a la JSX, который мне действительно нравится, в частности, потому что он делает код более похожим на простой React. UPDATE: @MxFr указали на fork с небольшим количеством активности.
  • Нет сомнений в том, что japgolly/scalajs-react находится в активной разработке. Подходит поддержка React 0.14. Подход заключается в использовании пользовательской версии lihaoyi/scalatags для шаблонов вместо синтаксиса XML. Это имеет недостаток в том, что сначала код выглядит немного странным, но вы привыкаете к нему, и он обеспечивает хороший уровень безопасности типов.
  • chandu0101/sri является новым и хочет быть более кросс-платформенным решением (веб, Android, iOS). Существует обсуждение о создании chandu0101/sri use japgolly/scalajs-react, и автор sri, похоже, особенно заинтересован в этом, основываясь на этом разговоре.

Исходя из вышесказанного, наиболее привлекательным решением является japgolly/scalajs-react, имея в виду, что в этом месте быстро меняются вещи.

Ответ 2

Я автор scalajs-реагирую, поэтому мои комментарии о двух других libs будут гораздо менее информированными, надеюсь, не так, но мы идем.

  • scalajs-react. Цель состоит в том, чтобы обеспечить лучший Scala опыт и тип безопасности. Поставляется со многими Scala лакомствами, производительностью, поддержкой FP, объективами и т.д. (Все необязательные). Focus is React для Интернета.

  • xored. Цель показала, что я использую максимально возможное использование JSX в Scala.

  • Sri - Цель выглядит, чтобы я покрывал большинство JS (даже Relay) и был как можно ближе к JS.

Есть, конечно, другие данные (комментарий выше упомянутых scalajs-реагирует с использованием React.createClass вместо расширения React.Component, но это тривиальная деталь реализации, которая может быть изменена за 10 минут без нарушения обратной совместимости Scala - я не беспокоиться об этом), но вместо подробностей я считаю, что философия уровня проекта должна быть вашим решающим фактором. Если вы хотите быть рядом с JS без суеты, используйте Sri; если вы хотите, чтобы безопасность типа и Scala были приоритетом, используйте scalajs-react.

Также scalajs-react разделит свой основной модуль на core и dom, чтобы соответствовать React. Я бы не затаил дыхание на добавленный модуль, если кто-то из сообщества не сделал этого. С другой стороны, Шри делает паутину и родных уже, и я знаю, что @chandu (один из авторов Sri) уже давно играет с родным, поэтому он должен получить большую поддержку и утонченность по сравнению с Sri lifespan.

Я лично считаю, что эта библиотека может просто быть очень простым фасадом для кода React.js, который упростил бы обновление до более новой версии React.js

Да, но простой фасад - это не то, что я хочу. Я хочу, чтобы фасад, которому я могу доверять моему коду, всегда будет работать - многие вещи могут срабатывать React, со временем все эти правила мелкой печати и проблемы времени выполнения встроятся в типы фасадов, чтобы scalac мог следить за нами.

(Также решение пропустить обновление до React 0.13 не было связано с трудностями). scalajs-react получил поддержку React 0.14 в течение нескольких дней после ее выпуска (в настоящее время на scalajs-react v0.10-RC1).

не простой фасад означает больше кода Javascript, который будет сгенерирован, и больше кода, который браузер должен будет загрузить.

Да, правда, но мы, вероятно, говорим только о нескольких КБ здесь. Использование Scala.JS вообще добавляет, как 150 КБ +, и его оптимизатор очень хорош в исключении кода, который вы не используете.

Надеюсь, что это поможет! Выбор хороший.

Ответ 3

С Sri вы можете разрабатывать как веб-приложения, так и мобильные приложения, где, поскольку scalajs-react/Xored Scalajs-реагируют на веб-сайты, я никогда не использовал Xored Scalajs-реагирую, поэтому не могу комментировать это. Теперь вопрос Sri-web vs scalajs -react

Sri-web vs Scalajs-React

Для любого веб-приложения scala нам нужно 3 основных принципа 1) способ определения компонентов/элементов React 2) Некоторые встроенные компоненты/примитивы/строительные блоки 3) маршрутизатор

1) Определение реактивных компонентов/элементов:

Scalajs-react имеет хорошо разработанный API ReactComponentB, но он основан на старом React.createClass, Sri имеет ElementFactory на основе нового класса React ES6 React.Component. В целом React.Component быстрее, чем React.createClass, так как реагировать 0.14, я предпочитаю использовать React.Component по сравнению с React.createClass, если не плохо нужны микшины. Это, как говорится, обсуждение о объединении ReactComponentB и ElementFactory в общем проекте.

2) Основные строительные блоки/примитивы:

Scalajs-react поставляется с dom-dsl (у вас есть все элементы/атрибуты dom на выбор). Sri также поставляется с компонентами dom dsl и реагирует на собственные веб-сайты.

3) Маршрутизатор:

Scalajs-react имеет маршрутизатор на основе URL. Sri имеет UniversalRouter, который работает как на мобильных устройствах, так и в Интернете, но не поддерживает URL-адреса и URL-адрес WebRouter.

Ofc scalajs-react имеет много других помощников и классный материал FP. Если кто-то не согласен с моими взглядами, не стесняйтесь начинать дискуссию, я более чем счастлив узнать новые вещи:)

Наконец, мы надеемся, что в ближайшее время у нас будет общий основной проект (1), чтобы пользователи могли выбирать/переключатели рендеринга на основе их вкусовых рецепторов, в конце дня scala.js должен побеждать:)

Изменить: btw Я автор Sri:)

Edit2: обновленный раздел маршрутизатора, так как sri 0.4.0 имеет веб-интерфейс на основе URL.

Edit3: обновленный блок блоков, так как sri 0.6.0 теперь имеет dom dsl.