18

これらの Scala.js React.js ライブラリの違いは何ですか? また、どちらか一方を選択する必要があるのはなぜですか?

  1. Xored Scalajs-react - 最後のコミットは 8 か月前です。だから、開発はもう活発ではないと思います。
  2. Scalajs-react - 非常にアクティブで完全であり, カスタム URL ルーターが付属しています. しかし、API は実際の Javascript React コードの記述方法から離れているようであり、React-native のサポートはなく、Scalaz と Monocle の追加によりライブラリが肥大化し、ブラウザーがダウンロードする必要がある Javascript のサイズが増加します。ドキュメントには Scalaz と Monocle がオプトインされていると書かれているので、デフォルトでは Scalaz と Monocle は除外されているのではないでしょうか? 個人的には、このライブラリは React.js コードの非常に単純なファサードであり、新しいバージョンの React.js への更新が容易になると感じています。単純なファサードではないということは、より多くの Javascript コードが生成されることを意味します。ブラウザがダウンロードする必要があるコード。ここで間違っているかもしれません。訂正してください。
  3. SRI - Newcomer とファサードは非常に完全に見え、Web、Relay、および React ネイティブをサポートしていますが、URL ルーターのサポートと DOM DSL はありません。ファサード API は非常に無駄がなく、Javascript React.js コードを記述するのと非常によく似ています。しかし、それはかなり新しく、本番環境に対応していない可能性がありますか?

ここで選択するオプションが多すぎるため、間違っている場合は訂正してください。Scala.js で React.js コードを記述する方法が 1 つあればいいのにと思います。

4

3 に答える 3

18

2015 年 10 月現在:

  • また、xored/scala-js-reactは現時点では積極的に開発されていないと結論付けています。テンプレート化に使用されるアプローチは、XML 構文を JSX 風に保つことです。これは、特にコードがプレーンな React のように見えるため、いくつかの点で気に入っています。更新: @MxFrは、少しアクティビティのあるフォークを指摘しました。
  • japgoly/scalajs-reactが活発に開発されていることは間違いありません。React 0.14 のサポートが予定されています。このアプローチは、XML 構文の代わりにテンプレート化にlihaoyi/scalatagsのカスタム バージョンを使用することです。これには、最初はコードが少し奇妙に見えるという欠点がありますが、慣れると、適切なレベルのタイプ セーフが提供されます。
  • chandu0101/sriは新しく、クロスプラットフォーム ソリューション (Web、Android、iOS) を目指しています。chandu0101/sriにjapgoly/scalajs-reactを使用させることについての議論があり、 sriの作成者はその会話に基づいてそうすることに特に興味を持っているようです。

上記に基づいて、現在最も魅力的なソリューションはjapgoly/scalajs-reactです。この分野では物事が急速に変化することを念頭に置いてください。

于 2015-10-14T17:04:29.027 に答える
11

Sri を使用すると、scalajs-react/Xored Scalajs-react が Web セントリックである Web アプリとモバイル アプリの両方を開発できます。私は Xored Scalajs-react を使用したことがないため、コメントできません。

Sri-web vs Scalaj-React

どの scala react Web アプリでも、3 つのコア原則が必要です。1) React コンポーネント/要素を定義する方法 2) いくつかの組み込みコンポーネント/プリミティブ/ビルディング ブロック 3) ルーター

1) React コンポーネント/要素の定義:

Scalajs-react はよく設計された API を持っていますReactComponentBが、それは古いものに基づいてReact.createClassおり、Sri には新しい React ES6 クラスに基づいた ElementFactory がありReact.Componentます。一般に、 React.Component は React.createClass よりも高速です。react 0.14 の時点では、ミックスインが必要でない限り、React.createClass よりも React.Component を使用することを好みます。そうは言っても、共通のプロジェクトで ReactComponentB と ElementFactory を組み合わせることについて話し合っています。

2) 基本的なビルディング ブロック/プリミティブ:

Scalajs-react には dom-dsl が付属しています (選択できる dom 要素/属性全体があります)。Sri には、dom dsl および react-native-web コンポーネントも付属しています。

3) ルーター:

Scalajs-react には URL ベースのルーターがあります。Sri には、モバイルと Web の両方で動作するが URL をサポートしない UniversalRouter と、URL ベースの WebRouter があります。

Ofc scalajs-react には他にも多くのヘルパーとクールな FP があります。私の意見に同意しない人がいたら、気軽に議論を始めてください。新しいことを知ってうれしいです :)

最後に、ユーザーが好みに応じてレンダラーを選択/切り替えできるように、共通のコア プロジェクト (1) がすぐにできることを願っています。最終的には scala.js が勝つはずです:)

編集:ところで私はSriの作者です:)

Edit2: sri 0.4.0 には URL ベースの Web ルーターがあるため、ルーター セクションを更新しました。

Edit3: sri 0.6.0 に dom dsl が追加されたため、ビルド ブロックのセクションを更新しました。

于 2015-10-14T23:28:57.790 に答える