React.cloneElement(this.props.children, {})
我继承了一个在render()
容器组件的方法中经常使用的代码库。像这样:
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>
Run Code Online (Sandbox Code Playgroud)
这不是反模式吗?据我了解,调用类似的函数React.cloneElement()
将在每次渲染时返回一个新实例,提醒虚拟 DOM 它必须协调的新更改,从而PureComponent
在最小化重新渲染方面无效。我是否误解了 Virtual DOM 协调?