unmountComponentAtNode
优质
小牛编辑
126浏览
2023-12-01
对于不使用 Rax 而是使用其他方法来重新渲染容器是不安全的,这是你需要通过 unmountComponentAtNode
来清空你的节点树。
移除一个已经渲染到 DOM 中的 Rax 组件,且将其事件处理器和 state 一并清除,如果组件被正确移除将会返回 true,如果在指定容器中没有该组件则不会做任何处理即返回 false。
注意 unmountComponentAtNode
并不能卸载所有已经挂载到 DOM 中的组件,它只能卸载通过 render 函数渲染的组件。
方法
unmountComponentAtNode(container)
参数
container
为需要卸载的 DOM 元素。
返回值
返回值为 true 的时候,表示卸载成功。反之,则表示卸载失败。
示例
import {createElement, render, useRef, useEffect } from 'rax';
import unmountComponentAtNode from 'rax-unmount-component-at-node';
import View from 'rax-view';
import Text from 'rax-text';
function App() {
const ref = useRef(null);
useEffect(() => {
const result = unmountComponentAtNode(ref.current);
});
return <View>
<Text ref={ref}>Hello Rax!</Text>
</View>;
}