Pablo Fonseca Moncada@pablofonseca-dev
Buenas a todos,
Desde que empecé con React y empecé a manipular la metodología de Brad Frost me surgió la duda de cómo se debería de implementar correctamente.
Para poner un ejemplo de cómo lo estoy haciendo pondré un proyecto simple de ejemplo:
Empecé a crear los Atoms, los cuales reciben por sus Props sus atributos y valores. Por lo habitual las clases HTML5 de esos componentes también se envían por Props y se relacionan con algún Toolkit de estilos como lo es Bootstrap o Tailwind CSS.
Sin embargo, mi intuición me dijo que todos los Components deberían tener la flexibilidad de tener sus atributos y clases de estilos dinámicas, por lo que pensé pasarlas por Props.
Entonces por poner un caso pondré como ejemplo este Atom de Input:
1import PropTypes from 'prop-types'; 2 3const Input = ( 4 { 5 type, 6 name, 7 id, 8 className, 9 placeholder, 10 disabled, 11 onChange 12 } 13) => { 14 return ( 15 <input 16 type={type} 17 name={name} 18 id={id} 19 className={className} 20 placeholder={placeholder} 21 disabled={disabled} 22 onChange={onChange} 23 /> 24 ); 25} 26 27Input.propTypes = { 28 type: PropTypes.string.isRequired, 29} 30 31Input.defaultProps = { 32 name: '', 33 id: '', 34 className: '', 35 placeholder: '', 36 disabled: false, 37 onChange: undefined 38} 39 40export default Input;
Ahora bien, luego de crear ese Atom vi un problema, y es que si todo lo recibo por Props significa que el Parent Component debería de pasarle esos Props. Es decir, el Particle debería de pasarle al Atom "Input" los Props. Ahora bien ¿Qué pasa si tengo más de un Atom y esa Particle también debe recibir Props?
Mi preocupación es que si todos los componentes reciben mediante Props sus valores entre más alto sea el Parent Component en el VirtualDOM, más tendrá parámetros que deberá pasarle a sus hijos.
Entonces, me gustaría saber la manera correcta de no tener un Props Hell.