【发布时间】:2021-02-22 09:57:38
【问题描述】:
我知道,在你的 React 组件中,渲染一个组件而不是使用渲染一些 JSX 的函数总是好的。 我的意思是,
这样做:
export default function App() {
const [count, setCount] = useState(0);
const someRenderFunction = () => <p>Hey</p>;
return (
<div className="App">
{someRenderFunction()}
<button
onClick={() => {
setCount((c) => c + 1);
}}
>
Increment{" "}
</button>
<p>{count}</p>
</div>
);
}
不鼓励。渲染函数应该导出到它自己的组件中,像这样:
const HeyComponent = () => <p>Hey</p>
export default function App() {
const [count, setCount] = useState(0);
return (
<div className="App">
<HeyComponent />
<button
onClick={() => {
setCount((c) => c + 1);
}}
>
Increment{" "}
</button>
<p>{count}</p>
</div>
);
}
但我从来没有真正理解过这种重构的好处。我尝试检查重新渲染行为,卸载行为。还是没看出有什么区别。 谁能详细解释为什么这个重构是必要的/有益的?
【问题讨论】: