On peut d'abord provoquer certains difficiles à déboguer des problèmes de performances, surtout si vous utilisez redux.
Si vous utilisez des objets ou des listes ou des fonctions, celles-ci seront de nouveaux objets sur chaque rendu.
Cela peut être mauvais si vous avez des composants complexes, vérifier que le composant idenitity pour voir si nouveau rendu doit être fait.
const Component = ({ prop1 = {my:'prop'}, prop2 = ['My Prop'], prop3 = ()=>{} }) => {(
<div>Hello</div>
)}
Maintenant, ce qui fonctionne parfaitement, mais si vous avez plus complexe de la composante et de l'état, tels que réagir-redux composants connectés avec connexion de base de données et/ou de réagir useffect crochets, et l'état des composants, ce qui peut causer beaucoup de rerending.
Il est généralement préférable d'avoir par défaut prop objets créés séparément, par exemple.
const Component = ({prop1, prop2, prop3 }) => (
<div>Hello</div>
)
Component.defaultProps = {
prop1: {my:'prop'},
prop2: ['My Prop'],
prop3: ()=>{}
}
ou
const defaultProps = {
prop1: {my:'prop'},
prop2: ['My Prop'],
prop3: ()=>{}
}
const Component = ({
prop1 = defaultProps.prop1,
prop2 = defaultProps.prop2
prop3 = defaultProps.prop3
}) => (
<div>Hello</div>
)