欢迎!请在关于页面了解有关此功能的一些更多信息。
在热重载中是否有一种方法只重新渲染受影响的 App 部分?
Figwheel 文档中只提到重新加载整个 App(这时你会失去所有组件的本地状态):https://figwheel.org/docs/hot_reloading.html#re-rendering-ui-after-saving-a-file
我还没有在 shadow-cljs 文档中找到这方面的内容。我看到的所有 App 要么根本不在热重载时重新渲染,要么重新挂载。
那么,比较热重载前后的 VDOM,并根据这种差异更新 DOM 遇到了哪些障碍?或者这已经被实现?
虽然 Figwheel/shadow-cljs 与 React/VDOM 无关,但它们不实现这种行为是预期的,但也许有一些库或明确的做法可以这样做?
事实上,这并不是“重新挂载”,而只是更新,并不意味着替换 App 的整个 DOM。调用顶层 render 与更新组件并无区别,React 仍然会按常规执行 diff 和 patch。
render
一般来说,如fulcro或re-frame等框架对状态和如何管理状态有明确的规则。使用这些规则。
fulcro
re-frame
在工具级别上这样做将会非常困难,这也是为什么figwheel和shadow-cljs都只处理代码的重新加载,而将状态管理留给实际应用的原因。我甚至不确定在没有完全限制您在代码中所能做的一切的情况下,能否在工具级别上完成这个任务。