Javascript React.cloneElement()对React';虚拟DOM的协调?
我继承了一个代码库,在容器组件的Javascript React.cloneElement()对React';虚拟DOM的协调?,javascript,reactjs,Javascript,Reactjs,我继承了一个代码库,在容器组件的render()方法中频繁使用React.cloneElement(this.props.children,{})。像这样: import React from 'react'; class App extends React.Component { render() { <div> {this.props.children && React.cloneElement(this.props.children, {
render()
方法中频繁使用React.cloneElement(this.props.children,{})
。像这样:
import React from 'react';
class App extends React.Component {
render() {
<div>
{this.props.children && React.cloneElement(this.props.children, {})}
</div>
}
}
...
import {Route} from 'react-router'
import App from '..';
import SomePureComponent from '..';
<Route
component={App}
path='/'
>
<Route
component={SomePureComponent}
path='/test'
/>
</Route>
从“React”导入React;
类应用程序扩展了React.Component{
render(){
{this.props.children&&React.cloneElement(this.props.children,{}}
}
}
...
从“反应路由器”导入{Route}
从“..”导入应用程序;
从“..”导入一些pureComponent;
这不是反模式吗?我的理解是,调用
React.cloneElement()
之类的函数将在每次渲染时返回一个新实例,提醒虚拟DOM必须协调新的更改,从而使PureComponent
在最小化重新渲染时无效。我对虚拟DOM协调有什么误解吗?我不太确定是否能给出确切的答案,但我使用React.cloneElement
而不添加或修改道具似乎毫无意义。我认为协调发生在您从render()
返回新的“元素”之后,因此,使用cloneElement
对性能来说并不坏(也不是专家)