Feliz: 积雪和反应刷新问题

创建于 2020-09-28  ·  4评论  ·  资料来源: Zaid-Ajaj/Feliz

嘿@Zaid-Ajaj
我正在玩雪包,并有一个与fast refresh相关的问题。

简而言之:

  • snowpack 开发服务器使用react-refresh
  • 目标是将它与fable-splitter结合使用,将 F# 编译为 js,然后 snowpick 就像任何其他 JS 文件一样拾取它。
  • 示例: https :
  • 正常的寓言组件刷新正在被接受。 ( Sun组件)
  • Feliz 绑定组件没有。 ( Moon组件)
  • 相关雪地对话: https :

有什么想法吗? Feliz 所做的与Fable.React所做的完全不同。

最有用的评论

这确实看起来是一个非常好的插件用例! 已经发布了 Nagareyama(寓言 3)的 alpha 版本,我只是在一些生产项目中对其进行测试,以完善问题并发布带有升级说明的非正式公告。 接下来是插件,大部分准备工作(清理 AST 并使其独立于 FCS)已经完成,并且已经有 Fable 2 的 POC,所以希望它不会花费太多时间。 准备好后,我会尽快与您联系,以便我们可以快速刷新进行测试👍

所有4条评论

嗨 Florian,这阻止 Feliz 完全使用fast-refresh问题相同,无论是使用 snowpack 还是 webpack。 问题在于生成的代码是什么样子的,以及实际上如何快速刷新。 生成的代码有一些不遵守的特殊要求才能被拾取:函数组件的值定义必须是大写的(即 let 绑定),定义必须是模块级别的定义,使用生成的代码中的 IIFE 使组件失去其原始引用和其他在这里彻底讨论的内容

如何解决这个问题? 生成快速刷新知道如何使用的 React 输出,这基本上是 Fable 现在所做的简化版本。 现在这可能吗? 不,我们不能改变 Fable 使用绑定的方式。 然而,在寓言 3 中, @alfonsogarciacaro正在努力将插件带回来,这应该允许我构建一个内部寓言插件,将生成的内容重写为可以正确使用快速刷新的东西。 我正在等待带有插件支持的 alpha 版本开始处理 AST

那很有意思。 查看Fable.React的源代码,它似乎是缓存实现的副作用。

@Zaid-Ajaj 和我做了很多修补工作才能让它工作,但目前对用户友好并不能真正实现。 您可以在这两个问题 #157 和 #203 中看到讨论。

随着寓言 3(希望如此)即将推出和插件系统的实现,我们可能会将 Feliz 代码编译成实际的 jsx,并且应该开箱即用,用户甚至不会真正考虑它。

这确实看起来是一个非常好的插件用例! 已经发布了 Nagareyama(寓言 3)的 alpha 版本,我只是在一些生产项目中对其进行测试,以完善问题并发布带有升级说明的非正式公告。 接下来是插件,大部分准备工作(清理 AST 并使其独立于 FCS)已经完成,并且已经有 Fable 2 的 POC,所以希望它不会花费太多时间。 准备好后,我会尽快与您联系,以便我们可以快速刷新进行测试👍

大家好,感谢详尽的解释!
期待流山,激动人心的时刻。

此页面是否有帮助?
0 / 5 - 0 等级