Bom dia,
Na aula 2, no vídeo "Utilizando o classnames", foi definida a proprieade ...rest
porém não foi inserida em alguma parte do componente Divider
Atenciosamente
Felipe D.R
Bom dia,
Na aula 2, no vídeo "Utilizando o classnames", foi definida a proprieade ...rest
porém não foi inserida em alguma parte do componente Divider
Atenciosamente
Felipe D.R
Olá Felipe D.R!
A propriedade ...rest
foi definida no componente Divider para que ele possa receber qualquer outra propriedade que não foi especificada anteriormente. No caso do vídeo "Utilizando o classnames", a propriedade ...rest
não foi utilizada em nenhum lugar específico do componente Divider, mas ela está lá para permitir que você possa adicionar outras propriedades caso necessário.
Por exemplo, digamos que você queira adicionar uma propriedade chamada customClass
no componente Divider. Você pode fazer isso passando essa propriedade junto com as outras quando você utiliza o componente Divider em outro lugar do seu código. Por exemplo:
<Divider customClass="meu-estilo-personalizado" />
E no componente Divider, você pode acessar essa propriedade utilizando props.customClass
. Por exemplo:
const Divider = ({ customClass, ...rest }) => {
return (
<div className={`meu-estilo-padrao ${customClass}`} {...rest}></div>
);
};
Dessa forma, você pode adicionar qualquer outra propriedade ao componente Divider utilizando o ...rest
.
Espero ter ajudado e bons estudos!
Olá Renan,
Obrigado pelo retorno,
Exato, mas fiquei pensando se no código do componente que é reutilizado até mesmo por servir como uma biblioteca de componentes, no caso o Divider, deveria estar em algum lugar a implementação explícita do parâmetro rest, igual do seu exemplo acima, pois caso contrário, se outro desenvolvedor for utilizar esse componente e se não tiver sido definido o rest, ele não irá conseguir passar outras propriedades além das que foram diretamente definidas, confere?
Até ao que parece é que todos os componentes em partes que se deseja estender, por servir como uma biblioteca de componentes, todos, ou quase todos, deveriam ter o parâmetro rest se acaso for de intenção tornar possível a extensão de adicionar novos estilos ao consumí-los. Mas ao mesmo tempo, tenho a impressão de que isso pode gerar até uma ruptura do contrato do design definido, já que abre portas para customizar de diversas outras maneiras com novas classes de estilo.....mas de uma forma geral, o recomendado na criação de design systems é que todos ou a maioria deveriam estar aptos para extensão com o parâmetro rest?
Obrigado
Felipe D.R