Je viens de vérifier les HOC dans React. Ils sont plutôt sympas. Cependant, le simple fait d'envelopper un composant ne permet-il pas d'obtenir le même résultat ?
Composant d'ordre supérieur
Ce simple HOC transmet l'état en tant que propriétés au ComposedComponent.
const HOC = ComposedComponent => class extends React.Component {
... lifecycle, state, etc;...
render() {
return (<ComposedComponent {...this.state} />);
}
}
Enveloppe des composants
Ce composant transmet l'état en tant que propriétés au composant enfant.
class ParentComponent extends React.Component {
... lifecycle, state, etc;...
render() {
return (
<div>
{React.cloneElement(this.props.children, { ...this.state })}
</div>
);
}
}
Bien que l'utilisation soit légèrement différente entre les deux, ils semblent être tout aussi réutilisables l'un que l'autre.
Quelle est la différence réelle entre les HOC et la composition de composants via this.props.children ? Existe-t-il des exemples où vous ne pouvez utiliser que l'un ou l'autre ? Il est préférable d'utiliser les HOC. S'agit-il simplement d'un choix que vous pouvez faire en fonction de vos préférences ?
0 votes
Le "Component Wrapping" est-il identique au "Container Component" ?