欢迎!请参阅关于页面以获取更多关于它的工作方式的信息。
在热重载中是否有一种方法可以仅重绘应用程序 affected 部分?
Figwheel 文档只提到重新挂载整个应用程序(在这种情况下,您将丢失组件的所有本地状态):https://figwheel.org/docs/hot_reloading.html#re-rendering-ui-after-saving-a-file
在 shadow-cljs 文档中没有找到有关此事项的任何信息。迄今为止我看到的每个应用程序要么在热重载时根本不重绘,要么执行重新挂载。
因此,比较热重载前后的 VDOM 以及根据此差异更新 DOM 的障碍是什么?或者这已经实现了?
虽然 Figwheel/shadow-cljs 独立于 React/VDOM,但预期它们不实施这种行为,但也许有一些库或明确的实现这种行为的约定?
实际上,这不是“重新挂载”,而只是一个更新,并不意味着整个应用程序的 DOM 被替换。调用顶级 render 与更新组件没有区别,React 仍然按常规执行 diff 和 patch。
render
一般来说,如fulcro或re-frame这样的框架对状态及其管理都有明确的规定。请使用它们。
fulcro
re-frame
在工具级别做这个难度太大,这就是为什么figwheel和shadow-cljs都只处理代码重载,而将状态管理留给实际应用。我甚至不确定如果没有完全限制代码的执行,这种操作能否在工具级别完成。