Skip to content
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

v1.1.0 引入 react-reconciler 后的体积徒增问题 #26

Open
CJY0208 opened this issue May 9, 2020 · 13 comments
Open

v1.1.0 引入 react-reconciler 后的体积徒增问题 #26

CJY0208 opened this issue May 9, 2020 · 13 comments
Assignees

Comments

@CJY0208
Copy link
Member

CJY0208 commented May 9, 2020

是否是必要的依赖呢?代价似乎太大了

https://bundlephobia.com/result?p=hox@1.1.0

image

@CJY0208
Copy link
Member Author

CJY0208 commented May 9, 2020

变动由 #19 造成

个人对这个改动的理解为支持非 dom 环境,但此项改动造成了体积徒增(3.8kb -> 76.3kb)

是否可调整为自动识别运行时环境,有条件地选择使用 react-dom 或 react-reconciler

@awmleer
Copy link
Member

awmleer commented May 14, 2020

那应该是要分成两个 package 了,类似 react-routerreact-router-dom

@awmleer
Copy link
Member

awmleer commented May 14, 2020

默认的 hox 是采用 custom renderer 方案的,包体积较大,但是兼容性更强;而 hox-dom 则是仅适用于浏览器环境的,体积更小。高端玩家甚至可以自己在 webpack 配置中根据不同环境替换为不同的 package 。
两个 package 的 API 以及行为都完全一致,只是底层实现不同。

这种方案如何?@CJY0208 @brickspert

@brickspert
Copy link
Member

感觉把开始很简单的一个东西,搞复杂了。🐶

@awmleer
Copy link
Member

awmleer commented May 14, 2020

对用户来说无感知,又能自动识别环境尽可能减少打包大小,这种方案感觉并不存在啊

@CJY0208
Copy link
Member Author

CJY0208 commented May 14, 2020

是的…似乎只能构建时判断

@awmleer
Copy link
Member

awmleer commented May 14, 2020

当然如果大多数用户都是在浏览器环境下使用的话,也可以 hox 是复用 react-dom renderer 的,hox-universal 是全平台通用的

@CJY0208
Copy link
Member Author

CJY0208 commented May 14, 2020

或者 hox 主包 render 默认为 react-dom,render 做成可配置的,在文档中做说明,让用户自己替换 render,提供示例

@brickspert
Copy link
Member

当然如果大多数用户都是在浏览器环境下使用的话,也可以 hox 是复用 react-dom renderer 的,hox-universal 是全平台通用的

那岂不是 break change 了。

@awmleer
Copy link
Member

awmleer commented May 14, 2020

当然如果大多数用户都是在浏览器环境下使用的话,也可以 hox 是复用 react-dom renderer 的,hox-universal 是全平台通用的

那岂不是 break change 了。

是的。。

@brickspert
Copy link
Member

当然如果大多数用户都是在浏览器环境下使用的话,也可以 hox 是复用 react-dom renderer 的,hox-universal 是全平台通用的

这个 +1 票

@awmleer awmleer mentioned this issue Jun 8, 2020
@conanjunn
Copy link

当然如果大多数用户都是在浏览器环境下使用的话,也可以 hox 是复用 react-dom renderer 的,hox-universal 是全平台通用的

+1

@maoyanyonghu
Copy link

这不仅仅是报错的问题。现在是升级过后,卡死了。
function resetCurrentFiber() {
{
ReactDebugCurrentFrame.getCurrentStack = null;
current = null;
isRendering = false;
}
}
ReactDebugCurrentFrame 为undefined,然后就是死循环。

@awmleer awmleer mentioned this issue May 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants