2016-12-01 22 views
4

私はクライアントに水分補給する前に私たちの翻訳オブジェクト全体をreduxストアに置くことを検討しています。この翻訳オブジェクトは約50kbのgzip形式で、115kbの形式は非圧縮です。レビュックスストアの大きさは大きすぎますか?

私たちのサイト全体が翻訳されているので、この翻訳オブジェクトは基本的にウェブサイト全体のすべての非ダイナミックコピーを表します。それが最初のhttp要求でクライアントに水和されている場合、少なくとも社内のコピーでは、瞬間的なブラウジングエクスペリエンスを提供する必要があります。

しかし、私はこれが方法であるかどうか、還元店にとっては大きすぎるのだろうかと思いますか?

答えて

4

翻訳を別々に読み込む必要があります。 Webpackはコード分割を可能にします。または、スクリプトタグを使用することもできます。

これを別にロードするのは、ブラウザがキャッシュできるようにするためです。これにより、1人のユーザーにつき1回しか読み込まれません。 Reactによって生成されたHTMLページは動的で、パスダウンしたストアも動的なので、キャッシュすることはできません。

このような膨大なデータがあるため、各ページの読み込み時に読み込むのは悪い考えです。

また、ストアは状態用です。それは変化するものを処理することです。静的データをそこに置くことは、それが扱うべきものではありません。これはできないという意味ではありませんが、良い一致ではありません。

3

私はReduxストアのサイズが大きすぎるとは思わない。ただし、アプリケーション状態のみを含める必要があります。翻訳オブジェクトはコード内にある必要があり、i18nライブラリを介してそれらにアクセスする必要があります。 州には、ユーザーに表示する言語を指定するフィールドが必要です。

+0

ぼんやりと主観的...店内の_is_ "コード内"。さらに、翻訳データを直接ストアに組み込む[多くのソリューション](https://github.com/zoover/react-redux-i18n)があるようです。もっと具体的なことはありますか、それともあなたの意見ですか?明確にするために、私は州の中のキーに直接アクセスするのではなく、そこにロードしてそこにi18nを指すだけです。 –

+0

@JohnDoeもちろん、私の意見では、あなたが好きなものは店頭に保存することができますが、Reduxのドキュメントの最初の行にあるように、それは「状態コンテナ」です。アプリケーションのグローバルな状態を表さない静的データをすべて保存するのはなぜですか? –

+0

つまり、ユーザーが自由にUI言語を変更できるという意味では「状態」です。ローカライズされたコンテンツは、実際にはアプリケーションの「状態」です。 –

関連する問題