---
title: React - Components
localeTitle: React - Componentes
---
## React - Componentes
Los componentes son reutilizables en react.js. Puedes inyectar valores en props como se indica a continuación:
```jsx
function Welcome(props) {
return
Hello, {props.name}
;
}
const element = ;
ReactDOM.render(
element,
document.getElementById('root')
);
```
El valor `name="Faisal Arkan"` se asignará en `{props.name}` de la `function Welcome(props)` y devolverá el componente `Hello, Faisal Arkan
` el cual esta guardado en la constante `element`. Ahora el componente puede renderizarse a través de la llamada a `ReactDOM.render(element, document.getElemenyById('root'));`.
En este caso, `document.getElemenyById('root')` indica el elemento en el cual se va a renderizar el componente.
### Otras formas de declarar componentes.
Hay muchas formas de declarar componentes al usar React.js, pero hay dos tipos de componentes, componentes **_sin_** **_estado_** y componentes con **_estado_** .
### Con estado
#### Componentes de tipo clase
```jsx
class Cat extends React.Component {
constructor(props) {
super(props);
this.state = {
humor: 'happy'
}
}
render() {
return(
{this.props.name}
{this.props.color}
);
}
}
```
### Componentes sin estado
#### Componentes funcionales (función de flecha de ES6)
```jsx
const Cat = props => {
return (
{props.name}
{props.color}
;
);
};
```
#### Componentes de retorno implícito
```jsx
const Cat = props =>
{props.name}
{props.color}
;
```