Workshop - ReactJS
  • Conociendo React!
  • 🤷1) ¿Por qué aprender React?
  • 🤓2) Creando elementos HTML con React.createElement API
  • 💣3) Reemplazando createElement por JSX
  • 🎉4) Creando el primer componente reutilizable con React
  • 🔮5) Virtual dom
  • 👮6) Validando props
  • 📝7) Listas
  • 🤡8) Condicionando un render
  • 💅9) Dando estilo a nuestro componente
  • 🍔10) Los class component
  • 🦁11) Manipulando el dom con refs
  • 💫12) Manejo de eventos
  • 💾13) Haciendo uso del State
  • ♻️ 14) Ciclo de vida de los componentes
  • ✏️15) Creando formularios
  • 🦍16) Haciendo un HTTP request con react
  • ✈️ 17) Patrones avanzados
    • 🎉18) Componentización
  • 🛠️ 18) Tips y experiencias
  • ☎️ Contacto
Powered by GitBook
On this page
  • Introducción
  • Entonces, ¿cómo juega React en las llamadas AJAX?
  • Seleccionando una librería para hacer llamados HTTP
  • Obteniendo la data
  • Práctico

16) Haciendo un HTTP request con react

Previous✏️15) Creando formulariosNext✈️ 17) Patrones avanzados

Last updated 7 years ago

Introducción

La primera pregunta que surge es ¿dónde y cómo hago los llamados AJAX? Respondamos esa pregunta.

Primero que nada aclarar que react no tiene una forma especial de hacer llamadas AJAX.

Entonces, ¿cómo juega React en las llamadas AJAX?

React ni siquiera se enterará que vamos a hacer un llamado AJAX, no es una de sus responsabilidades. Simplemente renderiza elementos a partir de data, que se dividen en props y state.

Teniendo en cuenta esto, si necesitamos que nuestra aplicación utilice datos obtenidos desde una API, necesitamos obtener esos datos y pasarlos a los componentes vía state o props.

Seleccionando una librería para hacer llamados HTTP

Ya que react no se encarga de hacer llamados HTTP necesitaremos una librería para hacerlos. Existen muchas opciones, veamos algunas de las más populares:

  • (es el standard y no es necesario instalar nada, es soportada por los navegadores)

En nuestro caso vamos usar fetch porque es soportada por los navegadores sin necesidad de agregar ninguna dependencia, pero sientete libre de utilizar la que más te guste.

Obteniendo la data

Ahora que entendimos hasta dónde va la responsabilidad de react para los llamados AJAX, hagamos un ejemplo en donde traigamos data desde una API y la rendericemos en un componente.

class FetchGithub extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      name: '',
      location: ''
    };
  }

  componentDidMount() {
    fetch('https://api.github.com/users/workshopsjsmvd')
      .then(res => {
        return res.json();
      })
      .then(res => {
        this.setState({
          name: res.name,
          location: res.location
        })
      });
  }

  render() {
    return [
      <h1 key="name">{`Nombre: ${this.state.name}`}</h1>,
      <h2 key="location">{`País: ${this.state.location}`}</h2>
    ];
  }
}

ReactDOM.render(
  <FetchGithub />,
  document.getElementById('root')
);

Analicemos el código. Primero que nada podemos ver que en el constructor inicializamos el state, dónde guardaremos los datos que obtendremos desde la API.

Por último, luego de obtener los datos hacemos un setState para actualizar la interfaz.

Práctico

Llevemos esto a la práctica:

En el ejemplo utilizaremos la para obtener el nombre y el país de nuestro usuario.

En el componentDidMount es donde ocurre todo. Cómo vimos en secciones anteriores este método se ejecuta cuando se termine de montar el componente por primera vez(sólo se ejecuta una vez), es por eso que es un buen momento para hacer nuestros llamados AJAX. Allí usamos la para obtener los datos de nuestro usuario de github.

🦍
Axios
Superagent
Fetch
API de github
API nativa fetch
react/practico/steps/http-request at master · workshopsjsmvd/reactGitHub
Logo