Desarrollar en componentes te permite partir la UI piezas (reusables e independientes), y asi poder analizar cada una de ellas aisladamente. Components and Props
- React.createClass - No ES6 Clases - (autobinding) - (lifecycle)
getInitialState() {
return: {
list: [],
loading: false
}
}
componentDidMount() {
// Hacer algo en el mount
}- class MyComp extends React.Component - (no more autobinding) - (lifecycle)
constructor() {
super(props); // Remember pass to super invo.
this.state = {
list: [],
loading: false
}
this.loadList = this.loadList.bind(this) // Remember to bind your methods
}
componentDidMount() {
// Hacer algo en el mount
}- Class Fields - class MyComp extends React.Component - (no more super and bind).
- Arrow function para nuestros metodos.
class MyComp extends React.Component {
state = {
list: [],
loading: false
}
componentDidMount() {
// Hacer algo en el mount
}
}- Functional components con Hooks =)
const [ loading, setLoading ] = React.useState();
React.useEffect(() => {
// Accionar ante un cambio del state || props
}, [loading])Podemos definir componentes de react de dos formas:
- Con una Función
- Con una Clase de ES6
- No tienen Ciclo de vida.
const HelloWorld = (props) => {
return <h1>Hello, {props.name}</h1>;
}- Si tienen Ciclo de vida.
class HelloWorld extends React.Component {
render() {
return <h1>Hello, {this.props.name}</h1>;
}
}El State y las Props son formas mediante las cuales podemos pasar y mantener información dentro de nuestros Componentes
- Las props son de solo lectura y nunca deben modificarse dentro de nuestro componente.
- Los Componentes que solo aceptan props y renderizan se los llama "Stateless Components || Dummy Components"
- Podriamos definirlo como la memoria que tiene mi componente a lo largo de instanciación.
- Esta permitido modificar el state.
En React 16.8 se agrego una nueva funcionalidad, la cual otorga el uso de State dentro de componentes que no son Clases, entre otros Hooks.
const [toggle, setToggle] = useState(false);- Mayor reutilización de codigo
- Mejor nivel de abstracción en mi codigo
- Te permite pensar los componentes de una forma mas sencilla
- No mas problemas con ciclos de vida que chocan :(
- Identificar State
- Identificar Life Cycle
- Entender que Hook aplica para refactorizar mi componente
npm install
npm start