Sono stato in discussioni con programmatori che mescolare elementi con animazioni e reagire è una pessima pratica e che tutte le animazioni dovrebbero essere in un foglio di stile perché è qualcosa di presentazionale che riguarda solo i CSS.
Tuttavia, ho anche visto un gran numero di librerie che usano elementi come VelocityComponent
o ReactCSSTransitionGroup
.
Volevo utilizzare VelocityComponent
solo per la possibilità di attivare i richiami sulle animazioni in corso di completamento / avvio, ma non sono sicuro che ciò sia considerato una buona pratica.
class Sidebar extends Component {
static propTypes = {
open: PropTypes.func,
onRequestChange: PropTypes.func,
onRequestComplete: PropTypes.func,
isOpen: PropTypes.bool.isRequired,
};
render() {
return (<div className={styles.sidebar}>
<VelocityComponent
duration={200}
animation={{ opacity: this.props.isOpen ? 1 : 0 }}
complete={() => this.props.onRequestComplete(this.props.isOpen)}
>
{this.props.children}
</VelocityComponent>
</div>);
}
}
Un caso d'uso di esempio per questo sarebbe caricare alcune richieste asincrone DOPO che la barra laterale è aperta per garantire che l'animazione funzioni senza intoppi.
Quindi è una cattiva pratica includere questo inline?