【发布时间】:2018-11-16 16:46:36
【问题描述】:
我只是想知道人们是否知道使用“渲染道具”模式是否会导致子组件的过度安装/卸载。 例如,改编自 React 文档 (https://reactjs.org/docs/render-props.html):
<Mouse>
{mouse => (
<ShowMousePosition mouse={mouse}/>
)}
</Mouse>
class ShowMousePosition extends React.Component {
componentDidMount(){
console.log('mounting!')
}
render () {
const {mouse} = this.props
return (
<p>The mouse position is {mouse.x}, {mouse.y}</p>
)
}
}
我知道反应文档说:
如果您在渲染方法中创建函数,则使用渲染道具可能会抵消使用 React.PureComponent 带来的优势。这是因为对于新的 props,浅 prop 比较总是会返回 false,并且在这种情况下,每次渲染都会为 render prop 生成一个新值。
但是,将“安装!”当用户移动鼠标时被一遍又一遍地调用?
谢谢!
【问题讨论】:
标签: reactjs