我想销毁根 Preact DOM 节点。我最初按如下方式呈现我的组件:
import { h, render } from 'preact';
import App from "./components/App";
render(<App />, document.querySelector("#app");
如何销毁App
?我是简单地卸载#app
DOM 节点,还是 Preact 提供了类似于 ReactunmountComponentAtNode()
方法的方法?
免责声明:我致力于预演。
任何渲染的preact
应用程序都可以通过将null
传递给render
来轻松销毁:
render(null, document.querySelector("#app"));
我们不需要任何特殊函数来执行此操作,并选择保留较小的 API 外围应用。preact-compat
中unmountComponentAtNode
的实现实际上只是用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