我看了老师在另外两个同学的问题下的回答,一个回答是「不然的话大家不都用一个数据了么,每个人应该有自己的数据啊」,另一个是「如果导出的是一个 store 实例,这个实例是单例的,也就是永远都是那一个,那么所有用户相当于公用一个 store 了」。
1.关于使用函数的方式返回新的对象的原因我是理解的。但我的问题是,不同的用户请求服务器的页面,不应该都会重新执行一次 React 的代码吗?那重新执行一次应该生成的对象也就完全不同了,那为什么还需要使用函数的方式返回呢?
2.因为我对服务器端运行 React 的流程并不是很了解,也许并不是的重新执行,可能会保留 store。但对于客户端,每个用户第一次请求页面,都应该是重新执行 React 的代码,那肯定不同的用户之间的 store 是完全独立的,那在客户端也就不需要使用函数的方式进行返回了。
3.对于服务器端使用 Redux,我想只有做首屏渲染的时候有用,而后面用户的所有操作都是由客户端来执行,所以 Redux 的初始化数据对于每个用户应该是相同的,不同的 Redux 数据也应该是当页面第一次返回到客户端,由客户端根据本地数据发送请求然后更改的,比如用户登录后会根据用户信息来返回数据。对于这种情况,我在想是否在服务器端就算是共用同一个 store 也没有任何的影响,除非是客户端的操作会让服务器去操作服务器端的 Redux,但我觉得这样肯定是有问题的,一是对服务器而言会增加消耗,二是对于服务器端,数据不应该存储在数据库吗?
因此,我觉得使用 getStore() 来返回 store 让我很迷惑,希望老师能给出合理的解答。