Javascript React中多个组件的渲染优先级
在我的React应用程序中,我有一个包含多个子组件的父组件:Javascript React中多个组件的渲染优先级,javascript,performance,reactjs,render,Javascript,Performance,Reactjs,Render,在我的React应用程序中,我有一个包含多个子组件的父组件: $Components.ParentComponent = React.createClass({ render: function() { return ( <div> <$Components.FirstChildrenComponent /> <$Components.SecondChildrenComponent />
$Components.ParentComponent = React.createClass({
render: function() {
return (
<div>
<$Components.FirstChildrenComponent />
<$Components.SecondChildrenComponent />
</div>
);
}
});
但这只是一个伪代码,只是想知道是否有任何标准的解决方案 据我所知,React将按照组件在渲染函数中出现的顺序渲染组件。据我所知,你在这里的选择是: 1) 将
SecondChildrenComponent
放在渲染函数的第一位。任何由CSS引起的布局问题都可以通过CSS解决,特别是当您使用flexbox时(由于其出色的“order”属性-)
2) 将长时间运行的函数移动到父组件,并在componentscomponentWillMount()方法中调用它。当然,如果长时间运行的函数首先要求第二个子组件已完成安装,那么这将不起作用
另外,React渲染函数可能只返回一个根组件。您的初始示例包含两个。可能是对OP问题的更新,但这两个示例都将组件包装在一个
中,因此渲染函数只返回1个根。是的,这看起来像是一个更新。最初它们没有包装在div.AFAIK中,ReactDOM.render()
用于初始化react树。在第二个伪代码中,将一个嵌套在另一个内部(通过在react代码中包含ReactDOM.render)不是一个好主意。
$Components.ParentComponent = React.createClass({
render: function() {
var secondComponent = ReactDOM.render(<$Components.SecondChildrenComponent />);
return (
<div>
<$Components.FirstChildrenComponent />
{secondComponent}
</div>
);
}
});