Зверніть увагу , я надав відповідь глибший тут
Обгортка під час виконання:
Це самий ідіоматичний спосіб.
const Wrapper = ({children}) => (
<div>
<div>header</div>
<div>{children}</div>
<div>footer</div>
</div>
);
const App = () => <div>Hello</div>;
const WrappedApp = () => (
<Wrapper>
<App/>
</Wrapper>
);
Зауважте, що children
це "спеціальна опора" в React, а приклад вище - синтаксичний цукор і (майже) еквівалентний<Wrapper children={<App/>}/>
Обгортка ініціалізації / HOC
Ви можете використовувати компонент вищого порядку (HOC). Вони були додані до офіційного документа нещодавно.
// Signature may look fancy but it's just
// a function that takes a component and returns a new component
const wrapHOC = (WrappedComponent) => (props) => (
<div>
<div>header</div>
<div><WrappedComponent {...props}/></div>
<div>footer</div>
</div>
)
const App = () => <div>Hello</div>;
const WrappedApp = wrapHOC(App);
Це може призвести до (мало) кращих характеристик, оскільки компонент обгортки може коротко замикати візуалізацію на один крок вперед з shouldComponentUpdate, тоді як у випадку з обгорткою часу виконання, підказки для дітей, ймовірно, завжди будуть іншими ReactElement і викликати повторні візуалізації навіть якщо ваші компоненти поширюють PureComponent.
Зауважте, що connect
Redux раніше був обгорткою виконання, але він був змінений на HOC, оскільки він дозволяє уникнути марних повторних візуалізацій, якщо ви використовуєте цю pure
опцію (що відповідає дійсності за замовчуванням)
Ніколи не слід викликати HOC під час фази візуалізації, оскільки створення компонентів React може бути дорогим. Ви повинні скоріше викликати ці обгортки при ініціалізації.
Зауважте, що при використанні функціональних компонентів, як вище, версія HOC не забезпечує корисної оптимізації, оскільки функціональні компоненти без стану не реалізуються shouldComponentUpdate
Більше пояснень тут: https://stackoverflow.com/a/31564812/82609
this.props.children
є частиною API компонента і, як очікується, буде використовуватися таким чином. У прикладах команди React використовується така методика, як при передачі реквізиту та при розмові про єдину дитину .