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