如何销毁根 Preact 节点?



我想销毁根 Preact DOM 节点。我最初按如下方式呈现我的组件:

import { h, render } from 'preact';
import App from "./components/App";
render(<App />, document.querySelector("#app");

如何销毁App?我是简单地卸载#appDOM 节点,还是 Preact 提供了类似于 ReactunmountComponentAtNode()方法的方法?

免责声明:我致力于预演。

任何渲染的preact应用程序都可以通过将null传递给render来轻松销毁:

render(null, document.querySelector("#app"));

我们不需要任何特殊函数来执行此操作,并选择保留较小的 API 外围应用。preact-compatunmountComponentAtNode的实现实际上只是用null调用render

// Excerpt from compat for Preact X
function unmountComponentAtNode(container) {
if (container._prevVNode!=null) {
render(null, container);
return true;
}
return false;
}

没有像unmountComponentAtNode()这样的方法没有preact-compat。 解决方法是使用render()方法的第三个参数来替换要卸载的组件,''null如此处建议: https://github.com/developit/preact/issues/53#issuecomment-184868295

最新更新