Pergunta

Estou pensando em criar um componente de reação para um botão mais ou menos assim:

var Button = React.createClass({
    getDefaultProps: function() {
        return {
            classString: '',
            disabled:'',
            text:'',
            link:'',
            onPropagateClick: function(){}
        };
    },
    handleClick: function () {
        this.props.onPropagateClick(this.props.link);
    },
    render: function () {
        return (
            <button className={this.props.classString} onClick={this.handleClick} disabled={this.props.disabled} >
                {(React.Children.count(this.props.children) === 0) ? this.props.text : this.props.children}
            </button>
        );
    }
}); 

e também crie um componente span:

var Span = React.createClass({
    getDefaultProps: function() {
        return {
            classString: '',
            text:''
        };
    },
    render: function () {
        console.log(this.props);
        return (
                <span className={this.props.classString}>
                    {this.props.text}
                </span>
            );
    }
});

E quando necessário passar Span como filho para Button

Alguém sabe como isso afetará meu desempenho?É uma boa prática ter tantos componentes multicamadas?

Obrigado pelas suas ideias

Foi útil?

Solução

Isso afetará um pouco o desempenho, mas não deixe que isso o impeça de fazer isso.É apenas um pouco de JavaScript executado, e o JavaScript é rápido.

Compor e construir abstrações é uma grande parte dos benefícios do React.Escreva componentes auxiliares sempre que eles tornarem seus outros componentes mais fáceis de entender ou alterar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top