私は新しいプロジェクトを開始し、Javascriptフレームワーク(vue.jsやreactなど)を使用してRuby on Rails API 、またはRuby on Rails to server-side render pages and sprinkle on the pages)(可能性としてStimulus.jsを活用)を使用します。
私は現在、RoRを使用してWebアプリケーションを生成することに非常に慣れており、JSフレームワークの使用を検討し始めたばかりです。
私の質問は、サーバー側のレンダリングと比較して、JSフレームワークを使用することからどのような利点がありますか?サーバー側のレンダリングと比較して、クライアント側を使用する必要がある場合の線の定義に問題があります。
たとえば、貧弱なインターネット接続環境では、クライアント側のパフォーマンスはサーバー側のレンダリングよりも優れていますか?私の想定では、ページの初期読み込み時にすべてのデータが呼び出されるため、DBに何かを永続化する必要が生じるまで、アプリケーションはインターネットにほとんどアクセスせずにクライアント側で実行できます。
基本的な実装とフローがクライアント側のレンダリングでどのように機能するかは理解していると思いますが、なぜそれが必要で、JavaScriptを使用したサーバー側のレンダリングよりもどのような利点があるのかわかりません。
おかげで、
テクノロジーを採用するための他の質問と同様に、それはテクノロジーに依存します。要件によって異なります。これは、将来の要件/製品のロードマップによって異なります。チームのさまざまなスキルにも多少依存します。
大まかに言えば、JSフレームワークは、データをマークアップにバインドすることになると、重い作業を行います。通常、データのモデルがあり、バインドしたいマークアップがあります。必要に応じてJSでこれを自分で達成できますが、フレームワークはほとんどの場合それに対応します。
一部のJSフレームワークはルーティングを処理して、「単一ページアプリ」の概念を支援します。
フレームワークに固有の多くの利点があります。
そうは言っても、私はvery JSフレームワークがやりすぎた場合の影響を意識しています。フレームワークを最大限に活用するために、開発者がスキルアップしてある程度の経験を積む必要がある期間があるだけでなく、フレームワークは多くの場合、そのパラダイム内で作業するように強制するか、少なくとも奨励します。と慣習-何であれ。ソリューションにその構造が必要な場合は、必ずしも不利ではありません(そのため、「利点」に応じてこの構造について言及します)。
I'm having trouble defining a line for when client side should be used compared to the server-side rendering.
-要件を確認し、推定プロセスの一部として、要件に取り組むためのアプローチをもう少し詳しく考えます。 JSフレームワークが提供できるものに基づいてホイールを再発明することに気付いた場合は、JSフレームワークに進んでください。 JSフレームワークが何を提供できるかわからない場合は、さらに詳しく調べてください。研究の出発点としていくつかの優れたフレームワークを選択したようですね。
サーバー側ではなくクライアント側のJSを使用することにはいくつかの利点があります。 1つはサーバー側よりも拡張が簡単なこと、もう1つはサーバー側のソリューションで必要になることが多いクライアントとサーバー間でデータを送信する必要がないため、レンダリング速度が速いことです。
一方、特に貧弱なネットワークでは、重いクライアントほど最初はロードに時間がかかります。それは本当に対象となる視聴者と彼らが通常持っているネットワークに依存します。