-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SSR服务器优化想法 #207
Comments
开了externals直接走本地文件就行不需要用vm费力不讨好 |
这里最大的问题是 store 的使用。现在用 vm 就是为了能在项目代码中可以无脑的调用 store 对象而不用考虑访问进程之间的相互污染 |
没看出为啥进程之间会互相污染store。每个请求都create一个新的store实例为啥会污染 |
如果能保证、规定所有使用 store 的地方都是用 react 根层下传的话,那完全没有问题 不过我们意图使用 至于这样的方式是否好确实有待商榷,不过为了实现这个行为如何编写服务器逻辑也是个问题 |
你这本质是支持更细粒度的组件数据获取。你与其用 |
建议一下store不应该作为默认方案。绝大部分的中小应用完全不需要用数据管理的库,特别还是redux这种用起来极度繁琐的库-。- |
store 挂在 ctx 的话,项目代码里要如何才能做到随意调用呢? React Suspense,我上次看官方好像还不支持 SSR,所以就没加进来
这边目前还是优先内部项目开发,所以也没考虑这么多 😅 |
-.-看了一下。。你们的这种场景单用ctx.store还不行,还是得通过props传递。看来只能结合useContext了。为每个请求用id作为namespace很容易内存泄漏 |
是的…… 为了方便让所有项目代码都能用 store 的话,我实在没想出啥更好的方案。为了服务器效率,目前来看只能限制代码编写方式,通过 props 传入 store 或者贵司 umi.js 那种用静态方法传入,概念类似,从结果来看都是添加规则限制 其实我这边最近还有个想法:Koot.js 提供 2 种 SSR 模式,一种就是现在的,为了保证我们这边老项目的兼容;另一种就是做使用规则限制,保证服务器效率 |
新的框架并没有props传递用这种思路。 |
只要是限制只有在组件里能用 ctx/store 的话,可操作空间还是很多的,比如我们有一个 @extend 高阶组件,可以负责这项能力 |
现状
vm.runInContext()
一次 SSR 代码新想法
Update 2021/01/17
ssrMode: 'strict'
(默认)getHistory
getStore
等公用函数禁用__()
翻译函数的方式禁用,服务器代码需要从ctx
获取,React 代码需要从 SSRcontext
获取ssrMode: 'vm'
(当前版本)The text was updated successfully, but these errors were encountered: