欢迎!有关如何工作的更多信息,请参见关于页面。
是否有只重新渲染应用受影响部分的热重载方法?
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都只处理代码重新加载,而将状态管理留给实际应用程序的原因。我甚至不确定是否可以在不完全限制在代码中可以做什么的情况下,在工具级完成此操作。