

fre RFC:新的编译引擎和ssr
source link: https://zhuanlan.zhihu.com/p/343106306
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

起因是 `html-webpack-plugin` 的作者给 fre 提的 ssr 的问题
Issues · yisar/fre (github.com)
然后我有一个局部 ssr 的新思路
其实大家都想对 jsx 进行编译,但是因为 jsx 是有 runtime 的,导致 jsx 一直无法编译
但是 react server component 展示了一种非常奇葩的路线,那就是对组件进行阉割,组件做到无状态,无事件,说白了就是无 runtime
然后就可以做编译了……

和 react server component 不一样的是,fre 的目的是寻找一种近似于字节码的中间码,实际上,server component 目前是用于客户端渲染的,也就是给 suspense 用的
但是我却看到了 ssr 的一种思路
众所周知,传统 ssr 性能差是因为它需要遍历 vdom,进而生成 html 字符串,vdom 的遍历如果发生在 server 这种资源不那么开放的端,就会性能很差
其实在语言设计领域大家都倾向于使用字节码去优化这种树的遍历的性能
同样,在 fre 中理论上也是可以的
实施
唔怎么解释呢?其实大家也看到了,大家都企图通过编译手段来提升一定的性能,比如 vue3 的 block tree,比如 angular ivy 等等
我打算在 fre 中引入一个新的编译引擎,用来支持 server component 和 ssr
因为 fre 不打算成为 framework,所以这个新的引擎我将会重新取名,然后重新建立仓库并外置,这算是 fre 脱离 react 进行的第一个大胆的创新
之前的核心调度和算法的超越称不上是创新,只能是把分内的事情做的更好而已
具体的代码我还需要一段时间的研究
yisar/fre: Tiny Concurrent UI library with Fiber. (github.com)
最后放一下 fre 的 github 地址,最近收到很多歪果仁的好评,还是很惊喜的
说实话我觉得我的代码水平其实很一般,但是我看得多,思考的多
通常我希望遇到更多这样的小伙伴,而不是上来就说一句
你这个对业务有什么价值
Recommend
-
18
大家好,我是 132,最近真的学到了很多东西,最主要的是纤程和协程的概念,这个概念不只是我日后造语言所必备,还让我对 fre 甚至是 react 有了更透彻的认知 大家可以看到,fre 的 slogan 已经发生了变化,不再是 Conc...
-
10
我宣布:fre 站起来了!伊撒尔前端玩票,高产玩具,fre,fard,berial,ep……...
-
9
我把世界上第一个 JS 引擎编译回了 JSdoodlewind雪碧 | github.com/doodlewind1995 年...
-
12
元旦,fre 可以 fork 了……伊撒尔前端玩票,高产玩具,fre,fard,berial,ep……大家好...
-
9
fre 2 大招:内置 Suspense伊撒尔俺,只想跪在床上娇喘,不想隔着网线叫唤halo 大家好,我...
-
10
fre 和 wean 更新:我还没放弃伊撒尔俺,只想跪在床上娇喘,不想隔着网线叫唤大家好,我是...
-
9
Fre RFC 逆向链表伊撒尔俺,只想跪在床上娇喘,不想隔着网线叫唤halo 大家好,俺又回来啦...
-
7
fre 2.1 重构,从右往左的 diff 算法伊撒尔✅趴在床上娇喘,❎隔着网线叫唤halo,大家好,俺...
-
10
Fre is 10 times faster than react! Aug 7 ・2 min read ...
-
5
Bitget Referral Code is wgiw0650 - Get $50,000 Free & 20% Discount ...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK