Not Burada daha ayrıntılı bir cevap verdim
Çalışma zamanı sarmalayıcısı:
Bu en deyimsel yol.
const Wrapper = ({children}) => (
<div>
<div>header</div>
<div>{children}</div>
<div>footer</div>
</div>
);
const App = () => <div>Hello</div>;
const WrappedApp = () => (
<Wrapper>
<App/>
</Wrapper>
);
Not children
"özel bir pervane" tepki olarak ve yukarıda örnek sözdizimsel şeker ve (neredeyse) eşdeğerdir<Wrapper children={<App/>}/>
Başlatma sargısı / HOC
Bir Yüksek Sipariş Bileşeni (HOC) kullanabilirsiniz. Son zamanlarda resmi dokümana eklendi .
// 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);
Bu, (daha az) daha iyi performanslara yol açabilir, çünkü sarma bileşeni, renderComponentUpdate ile bir adım öteye renderleme işlemini kısa devre yapabilirken, çalışma zamanı sarmalayıcısı durumunda, çocuk pervane her zaman farklı bir ReactElement olabilir ve yeniden oluşturuculara neden olabilir bileşenleriniz PureComponent'i uzatsa bile.
connect
Redux'un eskiden çalışma zamanı sarıcısı olduğuna dikkat edin, ancak pure
seçeneği kullanırsanız işe yaramaz yeniden oluşturma işlemlerinden kaçınmasına izin verdiği için bir HOC olarak değiştirildiğine dikkat edin (varsayılan olarak doğrudur)
React bileşenleri oluşturmak pahalı olabileceğinden, oluşturma aşamasında asla HOC çağırmamalısınız. Başlangıçta bu paketleyicileri çağırmayı tercih etmelisiniz.
Yukarıdaki gibi fonksiyonel bileşenler kullanıldığında, vatansız fonksiyonel bileşenler uygulanmadığı için HOC sürümünün herhangi bir yararlı optimizasyon sağlamadığını unutmayın. shouldComponentUpdate
Burada daha fazla açıklama: https://stackoverflow.com/a/31564812/82609
this.props.children
bileşen API'sının bir parçasıdır ve bu şekilde kullanılması beklenir. React ekibinin örnekleri, sahne aktarımında ve tek bir çocuktan bahsederken olduğu gibi bu tekniği kullanır .