欢迎!有关如何操作的更多信息,请查看关于页面。
在热重载中是否有可能仅重新渲染应用程序受影响的部分?
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 仍然像往常一样执行比较和修复。
render
通常,像 fulcro 或 re-frame 这样的框架对状态及其管理有明确的规则。请使用这些规则。
在工具级别做这件事会非常困难,这就是为什么 figwheel 和 shadow-cljs 只处理代码的重新加载,而将状态管理留给了实际的应用程序。我甚至不确定在工具级别做这件事是否可行,而不完全是限制你可以在代码中做什么。