Tencent / hel

A module federation SDK which is unrelated to tool chain for module consumer. 工具链无关的运行时模块联邦sdk.
https://tencent.github.io/hel/
Other
931 stars 79 forks source link

【咨询】是否能将自定义的ReactHooks函数作为微模块方法提供出去 #46

Closed missfine closed 1 year ago

missfine commented 1 year ago

在开发联调阶段,能否做到将自定义的的ReactHooks函数,作为微模块的方法提供出去。如果可以的话大致是如何引入调用的。

fantasticsoul commented 1 year ago

可以啊,参考模板: https://github.com/hel-eco/hel-tpl-remote-lib

你可以暴露任何东西(包括react hook)

missfine commented 1 year ago

可以啊,参考模板: https://github.com/hel-eco/hel-tpl-remote-lib

你可以暴露任何东西(包括react hook)

我目前处于微模块的研究开发阶段,还没有确认好暴露的函数。我希望在本地的另一个工程中引入微模块,并且实时更新调试。

因为我没有在另一工程中安装微模块,无法使用静态import的方式引入微模块。

如果使用preFetchLib方法进行引入,那么获取到的是一个Promise,这个无法在React组件内作为Hook使用。

目前我是在React组件定义前定义变量,配合入口处的预加载,初步实现。 image 但是这个方式可能存在异步加载不及时导致出错的问题。

所以想请教下,是否有其他的方式,能够更优雅的实现,不安装微模块时,在阻塞场景下使用远程函数的方法。 类似于useRemoteComp()这个API的使用方式。

missfine commented 1 year ago

找到了一个实现方式,初步确认能够解决我的问题。想请教下,这种方式最后生产情况下,会不会出现什么问题。 image

fantasticsoul commented 1 year ago

你好,没有任何问题,你需要再入口文件先执行 preFetchLib,然后其他任何地方都可以这样使用你的远程模块啦。

fantasticsoul commented 1 year ago

欢迎入群了解哈,可以更方便交流