免责声明:我从事 preact 工作。
里面有几个APIreact
不需要的preact
。但是因为现有的第三方库已经为我们发布的这些 API 开发了preact-compat
它在之上重新实现了它们preact
.
一些例子:
Children
-API:
这个 API 特别有趣,因为根本不需要它preact
. With preact
the children
属性始终是一个数组。
// React
Children.forEach(props.children, child => ...);
Children.map(props.children, child => ...);
Children.count(props.children);
// Preact
props.children.forEach(child => ...);
props.children.map(child => ...);
props.children.length;
unmountComponentAtNode
:
这是另一个不需要的 APIpreact
,因为我们可以通过渲染简单地卸载任何树null
:
import { render } from "preact";
import App from "./app";
// Render App into dom
render(<App />, document.getElementById("root"));
// Unmount tree
render(null, document.getElementById("root"));
如果你想删除子树而不是根节点,你可以通过返回来做到这一点null
来自一个组件。基本上null
始终被视为empty value.
findDOMNode
:
// React
const element = React.findDOMNode(componentInstance);
// In Preact that's just a property
const element = componentInstance.base;
在我们的例子中,这甚至适用于功能组件。请注意,几乎在所有情况下ref
s 优先于findDOMNode
.
Summary: preact-compat
主要包含第三方库的垫片,期望与以下 API 完全兼容react
.