Tutorial de ReactJS para principiantes

ยฟQuรฉ es ReactJS?

Reaccionar es una interfaz de cรณdigo abierto JavaBiblioteca de scripts para construir interfaces de usuario. Reaccionar Es mantenido por Facebook y una comunidad de desarrolladores individuales y empresas. Se utiliza ampliamente como base para crear sitios web de una sola pรกgina y aplicaciones mรณviles. Es muy fรกcil de usar y permite a los usuarios crear componentes de interfaz de usuario reutilizables.

Caracterรญsticas de ReactJS

JSX: JSX es una extensiรณn de javascript. Aunque no es obligatorio usar JSX en reaccionar, es una de las buenas caracterรญsticas y fรกcil de usar.

Componentes: Los componentes son como funciones puras de JavaScript que ayudan a facilitar el cรณdigo al dividir la lรณgica en cรณdigo independiente reutilizable. Podemos usar componentes como funciones y componentes como clases. Los componentes tambiรฉn tienen un estado, accesorios que facilitan la vida. Dentro de una clase se mantiene el estado de cada uno de los props.

DOM virtuales: React crea un DOM virtual, es decir, un cachรฉ de estructura de datos en memoria. Solo los cambios finales del DOM se actualizan posteriormente en el DOM del navegador.

Javascript Expresiones: Las expresiones JS se pueden utilizar en los archivos jsx usando llaves, por ejemplo {}.

Ventajas de ReactJS

A continuaciรณn se detallan las ventajas y ventajas importantes de utilizar ReactJS:

  • ReactJS utiliza dom virtual que utiliza cachรฉ de estructura de datos en memoria, y solo los cambios finales se actualizan en el dom de los navegadores. Esto hace que la aplicaciรณn sea mรกs rรกpida.
  • Puede crear componentes de su elecciรณn utilizando la funciรณn de componente de reacciรณn. Los componentes se pueden reutilizar y tambiรฉn son รบtiles en el mantenimiento del cรณdigo.
  • Reactjs es una biblioteca de JavaScript de cรณdigo abierto, por lo que es fรกcil empezar.
  • ReactJS se ha vuelto muy popular en poco tiempo y lo mantienen Facebook e Instagram. Es utilizado por muchas empresas famosas como Apple, Netflix, etc.
  • Facebook mantiene ReactJS, la biblioteca, por lo que estรก bien mantenida y actualizada.
  • ReactJS se puede utilizar para desarrollar una interfaz de usuario enriquecida para aplicaciones mรณviles y de escritorio.
  • Fรกcil de depurar y probar ya que la mayor parte de la codificaciรณn se realiza en Javascript en lugar de en HTML.

Desventajas de ReactJS

A continuaciรณn, se muestran las desventajas/desventajas de usar ReactJS:

  • La mayor parte del cรณdigo estรก escrito en JSX, es decir, HTML y CSS son parte de JavaScript, lo que puede resultar bastante confuso ya que la mayorรญa de los otros marcos prefieren mantener HTML separado del cรณdigo JavaScript.
  • El tamaรฑo del archivo de ReactJS es grande.

Usando ReactJS desde CDN

Para comenzar a trabajar con reaccionar, primero debemos instalar reaccionarjs. Puede comenzar a usar reaccionarjs fรกcilmente utilizando los archivos javascript CDN, como se muestra a continuaciรณn.

Vaya al sitio oficial de reactjs para obtener los enlaces CDN, es decir, https://reactjs.org/docs/cdn-links.html y obtendrรก los archivos necesarios para explicar la siguiente imagen.

Usando ReactJS desde CDN

Para desarrolladores

<script crossorigin src="https://unpkg.com/react@version/umd/react.development.js"></script> 
<script crossorigin src="https://unpkg.com/react-dom@version/umd/react-dom.development.js"></script>

para pinchar

<script crossorigin src="https://unpkg.com/react@version/umd/react.production.min.js"></script>		
<script crossorigin src="https://unpkg.com/react-dom@version/umd/react-dom.production.min.js"></script>		

Reemplace versiรณn con la รบltima versiรณn de reacciรณn tanto para reaccionar-development.js como para reaccionar-dom.developement.js. Puede alojar los archivos por su cuenta para comenzar a trabajar con reaccionarjs.

En caso de que planee utilizar los archivos CDN, asegรบrese de mantener el atributo de origen cruzado para evitar problemas entre dominios. El cรณdigo Reactjs no se puede ejecutar directamente en el navegador y debe transpirarse usando Babel a javascript antes de ejecutarse en el navegador.

Aquรญ estรก el script BabelJS que se puede utilizar:

<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>

Aquรญ estรก el ejemplo funcional de ReactJS usando archivos cdn y script babeljs.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Hello World</title>
    <script src="https://unpkg.com/react@16/umd/react.development.js"></script>
    <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>   
    <script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
  </head>
  <body> 
    <div id="app"></div>
    <script type="text/babel">
      ReactDOM.render(
        <h1>Hello, from Guru99 Tutorials!</h1>,
        document.getElementById('app')
      );
   </script>   
  </body>
</html>

Salida:

Para salida de producciรณn

Entraremos en detalles sobre el cรณdigo en el prรณximo capรญtulo. Veamos cรณmo funciona aquรญ con los archivos CDN. Se dice que usar el script de Babel directamente no es una buena prรกctica y que los principiantes pueden usarlo para aprender ReactJS por ahora. En producciรณn, tendrรกs que instalar React usando el paquete npm.

Usando paquetes NPM

Asegรบrate de tener instalado nodejs. Si no estรก instalado, consulte este tutorial para nodejs (https://www.guru99.com/node-js-tutorial.html) instalaciรณn.

Una vez que tengas nodejs instalado, crea una carpeta reaccionarproj/.

Para comenzar con la configuraciรณn del proyecto, ejecute el comando npm init.

Asรญ es como se verรก la estructura de carpetas:

reactproj\
package.json   

Ahora instalaremos los paquetes que necesitamos.

Aquรญ estรก la lista de paquetes para reactjs:

npm install react --save-dev
npm install react-dom --save-dev
npm install react-scripts --save-dev

Abra el sรญmbolo del sistema y ejecute los comandos anteriores dentro de la carpeta reactproj/.

Crea una carpeta src / donde vendrรก todo el cรณdigo js en esa carpeta. Todo el cรณdigo para el proyecto reactjs estarรก disponible en la carpeta src/. Cree un archivo index.js y agregue import reaccionar y reaccionar-dom, como se muestra a continuaciรณn.

index.js

import React from 'react';
import ReactDOM from 'react-dom';

ReactDOM.render(
<h1>Hello, from Guru99 Tutorials!</h1>,
    document.getElementById('root')
);

Hemos devuelto el cรณdigo bรกsico de reactjs. Explicaremos los detalles en el prรณximo capรญtulo. Queremos mostrar Hola, de los tutoriales de Guru99. y lo mismo se le da al elemento dom con id "root". Se toma del archivo index.html, que es el archivo de inicio, como se muestra a continuaciรณn.

Cree una carpeta public/ y agregue index.html como se muestra a continuaciรณn

index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>ReactJS Demo</title> 
  </head>
  <body>
    <div id = "root"></div>
   </body>
</html>

El paquete reaccionar-scripts se encargarรก de compilar el cรณdigo e iniciar el servidor para mostrar el archivo html, es decir, index.html. Debe agregar el comando en package.json que se encargarรก de usar scripts de reacciรณn para compilar el cรณdigo e iniciar el servidor como se muestra a continuaciรณn:

 "scripts": {
    "start": "react-scripts start" 
  }

Despuรฉs de instalar todos los paquetes y agregar el comando anterior, el paquete.json final es el siguiente:

Paquete.json

{
  "name": "reactproj",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "react-scripts start"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "react": "^16.9.0",
    "react-dom": "^16.9.0",
    "react-scripts": "^3.1.1"
  }
}

Para comenzar a probar reaccionarjs ejecute el comando

npm run start
C:\reactproj>npm run start		
> reactproj@1.0.0 start C:\reactproj		
> react-scripts start	

Abrirรก el navegador con la URL. http://localhost:3000/ como se muestra a continuaciรณn:

public / index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>ReactJS Demo</title> 
  </head>
  <body>
    <div id = "root"></div>
  </body>
</html>

Usando paquetes NPM

Tambiรฉn utilizaremos el mismo proceso para ejecutar los archivos javascript en los prรณximos capรญtulos. Agregue todos sus archivos js y .jsx en la carpeta src/. La estructura del archivo serรก la siguiente:

reatproj/
	 src/
	    index.js
	 node_modules/
	 public/
                index.html
	 package.json

Cรณmo crear la configuraciรณn de su primer proyecto React

Aquรญ hay una guรญa paso a paso en este Tutorial de ReactJS para comenzar con la primera aplicaciรณn de reacciรณn.

Paso 1) Importe los paquetes de reacciรณn.
1. Para comenzar con ReactJS, primero debemos importar los paquetes de reacciรณn de la siguiente manera.

import React from 'react';	
import ReactDOM from 'react-dom';	

2. Guarde el archivo como index.js en la carpeta src/

Paso 2) Escribe cรณdigo simple.
Escribiremos un cรณdigo simple en este tutorial React JS, en el que mostraremos el mensaje "ยกHola, de los tutoriales de Guru99!"

ReactDOM.render(

<h1>Hello, from Guru99 Tutorials!</h1>,
    document.getElementById('root')
);

ReactDOM.renderizar agregarรก la etiqueta al elemento con id root. Aquรญ estรก el archivo html que tenemos:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>ReactJS Demo</title> 
  </head>
  <body>
    <div id = "root"></div>
  </body>
</html>

Paso 3) Compile el cรณdigo.

A continuaciรณn, en este tutorial de React.js, debemos compilar el cรณdigo para obtener el resultado en el navegador.

Aquรญ estรก la estructura de carpetas:

reactproj/
     node_modules/
     src/
       index.js
     package.json
     public/
          index.html

Hemos agregado los comandos para compilar el archivo final en package.json de la siguiente manera:

"scripts": {
    "start": "react-scripts start"
  },

Para compilar el archivo final, ejecute el siguiente comando:

npm run start

Cuando ejecute el comando anterior, compilarรก los archivos y le notificarรก si hay algรบn error; si todo se ve bien, abrirรก el navegador y ejecutarรก el archivo index.html en http://localhost:3000/index.html

Comando: npm ejecutar inicio:

C:\reactproj>npm run start

> reactproj@1.0.0 start C:\reactproj
> react-scripts start

Paso 4) Verifique la salida.
La direcciรณn URL http://localhost:3000 se abrirรก en el navegador una vez que el cรณdigo estรฉ compilado como se muestra a continuaciรณn:

Resultado del proyecto First React

ยฟQuรฉ es JSX?

JSX es una extensiรณn de javascript. Es un script de plantilla donde tendrรกs el poder de usar HTML y Javascript juntos.

A continuaciรณn se muestra un ejemplo sencillo de un cรณdigo JSX.

const h1tag = "<h1>Hello, from Guru99 Tutorials!</h1>";		

ยฟPor quรฉ necesitamos JSX en React?

Para una interfaz de usuario, necesitamos HTML, y cada elemento en el dom tendrรก eventos que manejar, cambios de estado, etc.

En el caso de React, nos permite hacer uso de Html y javascript en un mismo archivo y encargarnos de los cambios de estado en el dom de manera eficiente.

Expresiones en JSX

A continuaciรณn se muestra un ejemplo sencillo de cรณmo utilizar expresiones en JSX.

En ejemplos anteriores de ReactJS, habรญamos escrito algo como:

index.js

import React from 'react';
import ReactDOM from 'react-dom';

ReactDOM.render(
<h1>Hello, from Guru99 Tutorials!</h1>,
    document.getElementById('root')
);

Ahora modificaremos el cรณdigo anterior para agregar expresiones. Las expresiones se utilizan entre llaves {} y se expanden durante el tiempo de ejecuciรณn. Las expresiones en React son las mismas que las expresiones de JavaScript.

index.js

import React from 'react';
import ReactDOM from 'react-dom';

const display = "Hello, from Guru99 Tutorials!";
const h1tag = "<h1>{display}</h1>";
ReactDOM.render(
    h1tag,
    document.getElementById('root')
); 

Probemos ahora lo mismo en el navegador.

Expresiones en salida JSX

Puede ver que la expresiรณn {display} no se reemplaza. React no sabe quรฉ hacer cuando se usa una expresiรณn dentro del archivo .js.

Ahora agreguemos cambios y creemos un archivo .jsx, como se muestra a continuaciรณn:

prueba.jsx

import React from 'react';
import ReactDOM from 'react-dom';

const display = "Hello, to Guru99 Tutorials";
const h1tag =<h1>{display}</h1>;
export default h1tag;

Hemos agregado el cรณdigo requerido y usaremos el archivo text.jsx en index.js. Queremos que h1etiqueta variable que se utilizarรก dentro de script.js, por lo que la misma se exporta como se muestra arriba en test.jsx

Aquรญ estรก el cรณdigo modificado en index.js

import React from 'react';
import ReactDOM from 'react-dom';
import h1tag from './test.jsx';

ReactDOM.render(
    h1tag,
    document.getElementById('root')
);


Para usar test.jsx en index.js, primero debemos importarlo como se muestra a continuaciรณn:

import h1tag from './test.jsx';

Podemos usar h1tag ahora en ReactDOM.render como se muestra a continuaciรณn:

ReactDOM.render(
    h1tag,
    document.getElementById('root')
);

Aquรญ estรก el resultado cuando verificamos lo mismo en el navegador:

Salida

ยฟQuรฉ son los componentes en ReactJS?

Los componentes son como funciones puras de JavaScript que ayudan a facilitar el cรณdigo al dividir la lรณgica en cรณdigo independiente reutilizable.

Componentes como funciones

prueba.jsx

import React from 'react';
import ReactDOM from 'react-dom';
function Hello() {
    return <h1>Hello, from Guru99 Tutorials!</h1>;
} 
const Hello_comp = <Hello />;
export default Hello_comp;


Hemos creado una funciรณn llamada Hola que devolviรณ la etiqueta h1 como se muestra arriba. El nombre de la funciรณn actรบa como un elemento, como se muestra a continuaciรณn:

const Hello_comp = <Hello />;
export default Hello_comp;

El componente Hola se utiliza como una etiqueta HTML, es decir, y asignado a Hola_comp variable y la misma se exporta usando export.

Usemos ahora este componente en el archivo index.js como se muestra a continuaciรณn:

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import Hello_comp from './test.jsx';

ReactDOM.render(
    Hello_comp,
    document.getElementById('root')
);

Aquรญ estรก el resultado en el navegador:

Salida de componentes en ReactJS

Clase como componente

Aquรญ hay un ejemplo de ReactJS que usa una clase como componente.

prueba.jsx

import React from 'react';
import ReactDOM from 'react-dom';

class Hello extends React. Component {
  render() {
    return <h1>Hello, from Guru99 Tutorials!</h1>;
  }
}
export default Hello;

Podemos usar el componente Hello en el archivo index.js de la siguiente manera:

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import Hello from './test.jsx';

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

El componente Hola se utiliza como una etiqueta HTML, es decir, .

Aquรญ estรก el resultado del mismo.

Clase como salida de componente

ยฟQuรฉ es un estado en ReactJS?

Un estado es un objeto javascript similar a los accesorios que tienen datos para usarse con el renderizado de reactjs. Los datos de estado son un objeto privado y se utilizan dentro de los componentes dentro de una clase.

Ejemplo de Estado

Aquรญ hay un ejemplo prรกctico sobre cรณmo usar el estado dentro de una clase.

prueba.jsx

import React from 'react';
import ReactDOM from 'react-dom';

class Hello extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
       msg: "Hello, from Guru99 Tutorials!"
    }
  }
  render() {
    return <h1>{this.state.msg}</h1>;
  }
}
export default Hello;

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import Hello from './test.jsx';

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

Esto es lo que obtenemos cuando lo probamos en el navegador:

Estado en la salida de ReactJS

ยฟQuรฉ son los accesorios en ReactJS?

Los accesorios son propiedades que se utilizarรกn dentro de un componente. Actรบan como objetos globales o variables que se pueden utilizar dentro del Componente.

Accesorios para el componente funcional

A continuaciรณn se muestra un ejemplo de cรณmo pasar accesorios a un componente de funciรณn.

import React from 'react';
import ReactDOM from 'react-dom';
function Hello(props) {
    return <h1>{props.msg}</h1>;
}  
const Hello_comp = <Hello msg="Hello, from Guru99 Tutorials!" />;
export default Hello_comp;

Como se muestra arriba, hemos agregado MSG atributo al componente . Se puede acceder al mismo como accesorios dentro de la funciรณn Hola, que es un objeto que tendrรก la MSG detalles del atributo, y el mismo se utiliza como expresiรณn.

El componente se utiliza en index.js de la siguiente manera:

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import Hello_comp from './test.jsx';

ReactDOM.render(
    Hello_comp,
    document.getElementById('root')
); 

Aquรญ estรก el resultado en el navegador:

Accesorios para la funciรณn de salida del componente

Accesorios para el componente de clase

Para acceder a los props en una clase podemos hacerlo de la siguiente manera:

prueba.jsx

import React from 'react';
import ReactDOM from 'react-dom';

class Hello extends React.Component {
  render() {
    return <h1>{this.props.msg}</h1>;
  }
}
export default Hello;

El proceso de MSG El atributo se pasa al componente en index.js de la siguiente manera:

import React from 'react';
import ReactDOM from 'react-dom';
import Hello from './test.jsx';

ReactDOM.render(
    <Hello msg="Hello, from Guru99 Tutorials!" />,
    document.getElementById('root')
); 

Este es el resultado en el navegador:

Accesorios para la salida del componente de clase

Tambiรฉn verifique: Tutorial de AngularJS para principiantes: aprenda AngularJS paso a paso

Ciclo de vida de un componente

El ciclo de vida de un componente se divide en etapas de Inicializaciรณn, Montaje, Actualizaciรณn y Desmontaje.

Aquรญ hay una explicaciรณn detallada sobre cada componente.

Un componente en reactjs tiene las siguientes etapas:

Inicializaciรณn: Esta es la primera etapa del ciclo de vida del componente.

Aquรญ tendrรก los accesorios predeterminados y el estado en el nivel inicial.

Montaje:En esta fase, el componente se renderiza dentro del DOM. En el estado de montaje, conocemos los siguientes mรฉtodos.

  • componenteDidMount(): esto tambiรฉn se llama cuando el componente se acaba de agregar al dom.
  • render(): Tienes este mรฉtodo para todos los componentes creados. Devuelve el nodo HTML.

Actualizar:En este estado, el usuario interactรบa con el DOM y lo actualiza. Por ejemplo, si ingresa algo en el cuadro de texto, se actualizan las propiedades del estado.

Los siguientes son los mรฉtodos disponibles en el estado de actualizaciรณn:

  • deberรญaComponentUpdate(): se llama cuando se actualiza el componente.
  • componenteDidUpdate(): despuรฉs de actualizar el componente.

Desmontaje: este estado entra en escena cuando el Componente no es requerido o eliminado.

Los siguientes son los mรฉtodos disponibles en el estado de desmontaje:

Componente willUnmount(): se llama cuando el componente se elimina o se destruye.

Ejemplo de trabajo

A continuaciรณn se muestra un ejemplo prรกctico que muestra los mรฉtodos llamados en cada estado.

Ejemplo: complife.jsx

import React from 'react';
import ReactDOM from 'react-dom';
class COMP_LIFE extends React.Component {
  constructor(props) {
    super(props);
    this.state = {name: ''};

    this.UpdateName = this.UpdateName.bind(this);
    this.testclick = this.testclick.bind(this);
  }

  UpdateName(event) {
    this.setState({name: event.target.value});
  }
  
  testclick(event) {
    alert("The name entered is: "+ this.state.name);
  }
  
  componentDidMount() {  
    console.log('Mounting State : calling method componentDidMount');
  }   
 
  shouldComponentUpdate() {  
    console.log('Update  State : calling method shouldComponentUpdate');
    return true;
  }  

  componentDidUpdate() {  
    console.log('Update  State : calling method componentDidUpdate')  
  }  
  componentWillUnmount() {  
    console.log('UnMounting State : calling method componentWillUnmount');
  }  

  render() {
    return (
      <div>        
         Enter Your Name:<input type="text" value={this.state.name} onChange={this.UpdateName} /><br/>        
        <h2>{this.state.name}</h2>
        <input type="button" value="Click Here" onClick={this.testclick} />
      </div>
    );
  }
}

export default COMP_LIFE;

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import COMP_LIFE from './complife.jsx';

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

Cuando verificas la salida en el navegador

Salida

En la consola del navegador obtienes:

Salida de la consola del navegador

Cuando el usuario ingresa en el cuadro de texto:

Salida de valores de usuario

En la consola se muestran los siguientes mensajes:

Salida de consola

Trabajar con formularios

En reaccionarjs, los elementos de entrada HTML como , y tienen su propio estado y deben actualizarse cuando el usuario interactรบa utilizando el mรฉtodo setState().

En este capรญtulo, veremos cรณmo trabajar con formularios en reaccionarjs.

Aquรญ hay un ejemplo de trabajo:

formulario.jsx

import React from 'react';
import ReactDOM from 'react-dom';
class Form extends React.Component {
  constructor(props) {
    super(props);
    this.state = {name: ''};

    this.UpdateName = this.UpdateName.bind(this);
    this.formSubmit = this.formSubmit.bind(this);
  }

  UpdateName(event) {
    this.setState({name: event.target.value});
  }
  
  formSubmit(event) {
    alert("The name entered is: "+ this.state.name);
  }

  render() {
    return (
      <form>        
         Enter Your Name:<input type="text" value={this.state.name} onChange={this.UpdateName} /><br/>        
        <h2>{this.state.name}</h2>
        <input type="submit" value="Submit" onClick={this.formSubmit} />
      </form>
    );
  }
}

export default Form;

Para los campos de entrada, necesitamos mantener el estado, por lo que reaccionar proporciona un mรฉtodo especial llamado establecer estado, lo que ayuda a mantener el estado cada vez que hay un cambio.

Hemos utilizado los eventos onChange y onClick en el cuadro de texto y el botรณn de envรญo. Cuando el usuario ingresa dentro del cuadro de texto, se llama al evento onChange y el campo de nombre dentro del objeto de estado se actualiza como se muestra a continuaciรณn:

UpdateName(event) {
    this.setState({name: event.target.value});
  }

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import Form from './form.jsx';

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

La salida en el navegador es la siguiente:

Trabajar con resultados de formularios

Paso 1) Ingrese su nombre en el cuadro de texto:

Trabajar con resultados de formularios

  1. Haga clic en el botรณn enviar

Trabajar con resultados de formularios

Trabajar con eventos en ReactJS

Trabajar con eventos en reaccionarjs es lo mismo que lo habrรญa hecho en javascript. Puede utilizar todos los controladores de eventos que se utilizan en javascript. El mรฉtodo setState() se utiliza para actualizar el estado cuando el usuario interactรบa con cualquier elemento HTML.

Aquรญ hay un ejemplo prรกctico de cรณmo usar eventos en reaccionarjs.

eventos.jsx

import React from 'react';
import ReactDOM from 'react-dom';
class EventTest extends React.Component {
  constructor(props) {
    super(props);
    this.state = {name: ''};

    this.UpdateName = this.UpdateName.bind(this);
    this.testclick = this.testclick.bind(this);
  }

  UpdateName(event) {
    this.setState({name: event.target.value});
  }
  
  testclick(event) {
    alert("The name entered is: "+ this.state.name);
  }

  render() {
    return (
      <div>        
         Enter Your Name:<input type="text" value={this.state.name} onChange={this.UpdateName} /><br/>        
        <h2>{this.state.name}</h2>
        <input type="button" value="Click Here" onClick={this.testclick} />
      </div>
    );
  }
}

export default EventTest;

Para los campos de entrada, necesitamos mantener el estado, por lo que reaccionar proporciona un mรฉtodo especial llamado establecer estado, lo que ayuda a mantener el estado cada vez que hay un cambio.

Hemos utilizado eventos onChange y onClick en el cuadro de texto y el botรณn. Cuando el usuario ingresa dentro del cuadro de texto, onChange Se llama al evento y el campo de nombre dentro del estado del objeto de estado se actualiza como se muestra a continuaciรณn:

UpdateName(event) {
    this.setState({name: event.target.value});
  }

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import EventTest from './events.jsx';

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

Aquรญ estรก el resultado en el navegador:

Trabajar con resultados de eventos

Cuando un usuario ingresa el nombre:

Trabajar con resultados de eventos

Cuando el usuario hace clic en el botรณn Haga clic aquรญ:

Trabajar con resultados de eventos

Trabajar con CSS en lรญnea en ReactJS

Veremos un ejemplo funcional para comprender el funcionamiento de CSS en lรญnea en Reactjs.

agregarestilo.jsx

import React from 'react';
import ReactDOM from 'react-dom';

const h1Style = {
    color: 'red'
};
  
function Hello(props) {
    return <h1 style={h1Style}>{props.msg}</h1>;
}  
const Hello_comp = <Hello msg="Hello, from Guru99 Tutorials!" />;
export default Hello_comp;

Agreguรฉ color: estilo "rojo" a la etiqueta h1.

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import Hello_comp from './addstyle.jsx';

ReactDOM.render(
    Hello_comp,
    document.getElementById('root')
);

La salida en el navegador es la siguiente:

Trabajar con salida CSS en lรญnea

Puede crear un objeto de estilo que desee en el elemento y usar una expresiรณn para agregar estilo, como se muestra en el ejemplo anterior.

Trabajar con CSS externo en ReactJS

Creemos un CSS externo, para eso creemos una carpeta css/ y agreguemos style.css en ella.

style.css

.h1tag {
color:red;
}

Agregue style.css a su archivo index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>ReactJS Demo</title> 
    <link href="css/style.css" rel="stylesheet" type="text/css" />
  </head> 
  <body>
    <div id = "root"></div>
    <script src = "out/script.min.js"></script>
  </body>
</html>

Ahora agreguemos la clase a la etiqueta h1 en el archivo .jsx.

agregarestilo.jsx

import React from 'react';
import ReactDOM from 'react-dom';

let classforh1 = 'h1tag';
  
function Hello(props) {
    return <h1 className={classforh1}>{props.msg}</h1>;
}  
const Hello_comp = <Hello msg="Hello, from Guru99 Tutorials!" />;
export default Hello_comp;

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import Hello_comp from './addstyle.jsx';

ReactDOM.render(
    Hello_comp,
    document.getElementById('root')
);

El atributo className contiene los detalles de la clase. Ahora, hagamos una prueba en el navegador.

Trabajar con salida CSS externa

Esto es lo que ves cuando inspeccionas la etiqueta h1 en el navegador:

Trabajar con salida CSS externa

Puede ver que la clase = "h1tag" se agregรณ correctamente a la etiqueta h1.

Resumen

  • ReactJS es una interfaz de cรณdigo abierto JavaBiblioteca de scripts para crear la interfaz de usuario. Facebook la mantiene y muchas empresas la utilizan actualmente para el desarrollo de la interfaz de usuario.
  • Las caracterรญsticas principales de ReactJS incluyen JSX, componentes (componentes funcionales y componentes basados โ€‹โ€‹en clases), el ciclo de vida de un componente, accesorios y soporte de estado para un componente, trabajando con expresiones de JavaScript.
  • La configuraciรณn del proyecto de ReactJS se explica utilizando archivos CDN y tambiรฉn usando paquetes npm para construir el proyecto.
  • JSX es una extensiรณn de javascript. Es una plantilla de script donde tendrรกs el poder de usar HTML y JavaScript juntos.
  • Los componentes son como funciones puras de JavaScript que ayudan a facilitar el cรณdigo al dividir la lรณgica en cรณdigo independiente reutilizable.
  • Un estado es un objeto javascript similar a los accesorios que tienen datos para usarse con el renderizado de reactjs. Los datos de estado son un objeto privado y se utilizan dentro de los componentes dentro de una clase.
  • Los accesorios son propiedades que se utilizarรกn dentro de un componente.
  • El ciclo de vida de un componente se divide en etapas de Inicializaciรณn, Montaje, Actualizaciรณn y Desmontaje.
  • En reaccionarjs, los elementos de entrada html como , y tienen su propio estado y deben actualizarse cuando el usuario interactรบa utilizando el mรฉtodo setState().
  • Trabajar con eventos en reaccionarjs es lo mismo que lo habrรญa hecho en javascript. Puede utilizar todos los controladores de eventos que se utilizan en javascript. El mรฉtodo setState() se utiliza para actualizar el estado cuando el usuario interactรบa con cualquier elemento HTML.
  • ReactJS le permite trabajar con CSS externo y CSS en lรญnea usando expresiones de JavaScript.

Tambiรฉn verifique: Las 70 preguntas y respuestas principales de la entrevista de React (actualizado)

Resumir este post con: