2016-12-01 83 views
4

因此,我正考虑在补充客户端之前将我们的整个翻译对象放入redux商店。这个翻译对象是大约50kb gzip,和115kb未压缩。Redux商店有多大?

我们整个网站都经过翻译,所以这个翻译对象基本上代表了整个网站的所有非动态副本。如果它在初始http请求中被吸收到客户端上,它应该提供即时浏览体验,至少在内部复制时是这样。

但是,我想知道这是否对于一个redux商店来说太大了?

回答

4

您应该单独加载译文。 Webpack允许代码分割,这可以提供帮助。或者你可以使用脚本标签。

单独加载它的原因是浏览器可以缓存它。这使得它只能为每个用户加载一次。由于React生成的HTML页面是动态的,并且您传递的商店也是动态的,因此它们不能被缓存。

有了这么大的数据量,在每个页面加载它都是一个坏主意。

此外,商店是为国家。这是为了处理变化的东西。把静态数据放在那里并不意味着要处理什么。这并不意味着它不能完成,但它不是一个好匹配。

3

我不认为Redux商店的尺寸太大。但它应该只包含应用程序状态。翻译对象应该在代码中,你应该通过一个国际图书馆来访问它们。 国家应该有一个领域,说什么语言,你必须展示给用户。

+0

模糊和主观......商店内部_is_“在代码中”。此外,似乎有[许多解决方案](https://github.com/zoover/react-redux-i18n)将翻译数据直接并入商店。你有更具体的东西吗,还是仅仅是你的意见?要清楚的是,我不会直接在状态中访问密钥,而只是将它们加载到那里并指向它。 –

+0

@JohnDoe当然这只是我的意见,你可以在商店中保存任何你想要的东西,但是Redux文档的第一行说,它是一个“状态容器”。为什么要保存所有不代表应用程序全局状态的静态数据? –

+0

我的意思是,用户可以自由更改UI语言,这是“状态”。本地化的内容实际上是应用程序的“状态”。 –