<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alberto Sandoval</title>
    <description>The latest articles on DEV Community by Alberto Sandoval (@betosandoval).</description>
    <link>https://dev.to/betosandoval</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F454539%2F68558912-87e5-4469-9814-aa6140952fa2.jpg</url>
      <title>DEV Community: Alberto Sandoval</title>
      <link>https://dev.to/betosandoval</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/betosandoval"/>
    <language>en</language>
    <item>
      <title>Ciclo de vida de un Componente de clase en React</title>
      <dc:creator>Alberto Sandoval</dc:creator>
      <pubDate>Mon, 05 Jul 2021 20:58:35 +0000</pubDate>
      <link>https://dev.to/betosandoval/ciclo-de-vida-de-un-componente-de-clase-en-react-4497</link>
      <guid>https://dev.to/betosandoval/ciclo-de-vida-de-un-componente-de-clase-en-react-4497</guid>
      <description>&lt;p&gt;El “Ciclo de Vida del componente” es un proceso en el cual los componetentes de React, se renderizan, actulizan o desmontan de la pantalla del navegador. &lt;/p&gt;

&lt;p&gt;Nos permite detrminar el estado de nuestro componente y ejecutar determidas lineas de código en momentos particulares del proceso para montar (mostrar en pantalla), actualizar o desmontar (quitar de pantalla) nuestro componente.&lt;/p&gt;

&lt;h1&gt;
  
  
  Fases del ciclo de vida:
&lt;/h1&gt;

&lt;p&gt;El ciclo de vida de un componente en React abarca tres 3 fases, el &lt;strong&gt;&lt;em&gt;montado&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;actualización&lt;/em&gt;&lt;/strong&gt; y &lt;strong&gt;&lt;em&gt;desmontado&lt;/em&gt;&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Dentro de cada fase existen métodos que las caracterizan, a continucación describire cada fase con sus respectivos  metodos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Montaje
&lt;/h2&gt;

&lt;p&gt;Momento en el que se inserta el código del componente en el DOM y se muestra en la UI.&lt;/p&gt;

&lt;p&gt;Los métodos más importantes que se ejecutan en esta fase son:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;constructor()&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;En este método se incializan los estados o valores.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;render()&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;En este método el componten se renderiza , se inserta el codigo en el DOM HTML.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;componentDidMount()&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Indica que el componente ya es visible en pantalla.&lt;/p&gt;

&lt;h2&gt;
  
  
  Actualización
&lt;/h2&gt;

&lt;p&gt;En esta etapa los props y el estado del componente cambian.&lt;/p&gt;

&lt;p&gt;Los métodos más importantes que se ejecutan en esta fase son:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;render()&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;El componente se vuelve a renderizar, esta vez con los datos que hayan cambiado. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;componentDidUpdate(prevProps, prevState)&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Recibe dos argumentos: Los props anteriormente y el estado que tenia anteriormente el componente lo actualiza. este método nos sirve para comparar entre la versión previa y la versión actual del componente.&lt;/p&gt;

&lt;h2&gt;
  
  
  Desmontado
&lt;/h2&gt;

&lt;p&gt;Esta fase existe un solo método que se ejecuta antes de que un componente se elimine (desmonte) de la UI de nuestra aplicación. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;componentWillUnmount()&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Este método nos permite limpiar memoria eliminando el componente de la pantalla.&lt;/p&gt;

&lt;p&gt;Existe otros métodos de ciclo de vida pero son menos comunes.&lt;/p&gt;

&lt;p&gt;Para saber más sobre los métodos del ciclo de vida puedes revisar la &lt;a href="https://es.reactjs.org/docs/react-component.html"&gt;documentación&lt;/a&gt; de React.&lt;/p&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Estado en componentes de Clase</title>
      <dc:creator>Alberto Sandoval</dc:creator>
      <pubDate>Sun, 04 Jul 2021 23:37:37 +0000</pubDate>
      <link>https://dev.to/betosandoval/estado-en-componentes-de-clase-3edg</link>
      <guid>https://dev.to/betosandoval/estado-en-componentes-de-clase-3edg</guid>
      <description>&lt;p&gt;En los componentes de clase, el estado incial, se declara dentro del metodo constructor. &lt;br&gt;
Tenemos que hacer referecia con &lt;code&gt;this&lt;/code&gt; a &lt;code&gt;.state&lt;/code&gt; y le asignamos a un objeto los valores, dentro de  las llaves de éste, estos son los valores del estado.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tMtTJrkm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3l1damozb7rha0d5wtrv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tMtTJrkm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3l1damozb7rha0d5wtrv.png" alt="Ejemplo de método constructor: constructor(props){&lt;br&gt;
        super(props);&lt;br&gt;
        this.state = {&lt;br&gt;
            valor1: 'Valor 1',&lt;br&gt;
            valor2: 2,&lt;br&gt;
        }&lt;br&gt;
    }"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Podremos acceder en cualquier otro momento mediante this.state.valor1 , this.state.valor2 , etc.&lt;br&gt;
Ejemplo:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--D9IrZ_iD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vlsil0316c7erap9qic8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--D9IrZ_iD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vlsil0316c7erap9qic8.png" alt="Aceediendo a los valores de estado"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;this.setState()&lt;/code&gt; Es una función similar a &lt;code&gt;setName&lt;/code&gt; , nos permite acualizar los valores del estado incial. &lt;code&gt;setState&lt;/code&gt; es un elemento propio de &lt;code&gt;this&lt;/code&gt; que recibe como argumento un objetos con los atributos que se vayan a actulaizar, inicializados dentro de &lt;code&gt;this.state&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;NOTA IMPORTARTANTE! Nunca invocar el &lt;code&gt;setState&lt;/code&gt; en el método constructor o en el método render porque la aplicación se romperá y entrará en un ciclo infinito.&lt;/p&gt;

&lt;h2&gt;
  
  
  Declarando funciones en componenetes de Clase.
&lt;/h2&gt;

&lt;p&gt;Si queremos declarar funciones dentro de nuestro componentes de clase, la manera de invocarlas para el manejo de valores de estado se debe tomar en cuenta la palabra reservada &lt;code&gt;this&lt;/code&gt;. Por ejemplo:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--k-RO_QqW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bp7idqb5w6002wl77dia.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k-RO_QqW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bp7idqb5w6002wl77dia.png" alt="Imagen que muestra una funcion dentro de un componente de clase"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En el ejemplo anterior this.state.name  y  this.state.lastName apuntan a los valores de estado de  nuestro componente e invocamos a esos datos  llamando a la funcion con this.getFullName , cabe resaltar que sin la palabra reservada this no podremos manejar los valores de estado en nuestro componente de clase ya que nuestro codigo se rompería.&lt;/p&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>spanish</category>
    </item>
    <item>
      <title>Estado en componentes funcionales (useState).</title>
      <dc:creator>Alberto Sandoval</dc:creator>
      <pubDate>Sun, 04 Jul 2021 20:05:22 +0000</pubDate>
      <link>https://dev.to/betosandoval/estado-en-componentes-funcionales-22pk</link>
      <guid>https://dev.to/betosandoval/estado-en-componentes-funcionales-22pk</guid>
      <description>&lt;p&gt;Los estados en React nos permiten controlar los valores y datos que maneja un componente. Permiten que este sea capaz de cambiar la interfaz sin renderizar todo el DOM. Podemos decir que es una manera de tener variables que podemos cambiar de manera dinámica.&lt;/p&gt;

&lt;h1&gt;
  
  
  useState
&lt;/h1&gt;

&lt;p&gt;El componente funcional, para controlar los valores de estado, importa una función &lt;a href="https://dev.toput-link-here"&gt;Hook&lt;/a&gt;, llamada &lt;code&gt;useState&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jCLdG8w9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xmbgl4qkexvyfe34r7k4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jCLdG8w9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xmbgl4qkexvyfe34r7k4.png" alt="importando useState: import React, {useState} from 'react';"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;useState&lt;/code&gt; Es similar a tener una variable, así que después de importarlo dentro de nuestro archivo, podemos asignarle un valor dentro de nuestro componente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zCCPRFHt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9c7lgpl24zn6ax54tbuc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zCCPRFHt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9c7lgpl24zn6ax54tbuc.png" alt="Ejemplo de Asiganación de un valor al useState: const [name, setName] = useState('Alberto');"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;useState&lt;/code&gt; es una función que nos retornara algo al pasarle un argumento, ese argumento puede ser cualquier tipo de dato (string, null, number, etc.), &lt;code&gt;useState&lt;/code&gt; puede funcionar incluso sin recibir el argumento antes mencionado. En el ejemplo de arriba el argumento seria 'Alberto' y este se tomara como el valor inicial.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;useState&lt;/code&gt; básicamente regresa un arreglo con dos valores: un valor y un &lt;code&gt;set&lt;/code&gt;. Gracias al &lt;code&gt;set&lt;/code&gt; podemos actualizar el valor de estado de nuestro componente cuando lo requiramos.&lt;br&gt;
Para realizar el cambio de estado de un componente con el &lt;code&gt;set&lt;/code&gt; necesitamos de un evento que active o llame la función, como en el ejemplo de la imagen anterior, al &lt;code&gt;set&lt;/code&gt; se le asigno el nombre &lt;code&gt;setName();&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Algunas de las varias formas de declarar argumentos en &lt;code&gt;useState&lt;/code&gt;:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Vq4-NicF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6myzsruwdmvb8qzk7e5h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Vq4-NicF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6myzsruwdmvb8qzk7e5h.png" alt="const[name, setName] =useState('');&lt;br&gt;
const[nickName, setName] =useState('Beto');&lt;br&gt;
const[age] =useState();&lt;br&gt;
const[, setSomething] =useState('Hey!');"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>spanish</category>
    </item>
    <item>
      <title>React (Componentes)</title>
      <dc:creator>Alberto Sandoval</dc:creator>
      <pubDate>Mon, 10 May 2021 19:17:20 +0000</pubDate>
      <link>https://dev.to/betosandoval/2-react-componentes-2mg2</link>
      <guid>https://dev.to/betosandoval/2-react-componentes-2mg2</guid>
      <description>&lt;h1&gt;
  
  
  ¿Qué es un Componente en React?
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Pequeña pieza de código encapsulada reutilizable que realiza un trabajo en específico y puede tener estado o no. Aceptan entradas arbitrarias (llamadas “props”) y devuelven a React elementos que describen lo que debe aparecer en la pantalla.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Todo lo que contiene una aplicación web puede ser un componente, la aplicación web en si misma puede verse como un componente que contiene otros componentes hijos, como lo son la barra de navegación, los menús, botones, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0JXmruhj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ielvb2cotk3c1fnsdm6t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0JXmruhj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ielvb2cotk3c1fnsdm6t.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Estado
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Es como se encuentra la información del componente en un punto determinado del tiempo&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Todo componente tiene un estado inicial. El estado inicial es la información inicial del componente, antes de ser modificada por alguna interacción del usuario.&lt;/p&gt;

&lt;p&gt;Por ejemplo. En el estado inicial de este componente los inputs del formulario no tienen valor alguno.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E1fnAbvm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d1fg9of7mha3fe0x9pu2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E1fnAbvm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d1fg9of7mha3fe0x9pu2.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El estado se actualiza cuando el usuario interactúa con la interfaz.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--z9QbB8Ps--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ni0yt9mz1n8udjn3yew.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--z9QbB8Ps--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ni0yt9mz1n8udjn3yew.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  ¿Cómo crear componentes en React?
&lt;/h1&gt;

&lt;p&gt;Existen dos maneras de crear un componente &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Basada en Funciones. (&lt;strong&gt;Function Components&lt;/strong&gt;)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gZFWqCk_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hibtk40412d0ipxb5ri1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gZFWqCk_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hibtk40412d0ipxb5ri1.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Basada en Clases. (&lt;strong&gt;Class Components&lt;/strong&gt;)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--h26WzYie--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/igtx0avxany7qm4dc9yb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--h26WzYie--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/igtx0avxany7qm4dc9yb.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;¿Por qué usar Componentes funcionales?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A partir de la versión 16.8 en React se adicionaron los hooks, que le proporcionaron características a los componentes basados en  funciones que antes eran únicas de los componenetes de clase, como lo son el estado y métodos de ciclo de vida. Esto aunado a la facilidad de su uso, perfilan a los componentes funcionales, como el futuro en cuanto a implementeción de componentes en React.&lt;/p&gt;

&lt;h1&gt;
  
  
  Renderizando un Componenete
&lt;/h1&gt;

&lt;p&gt;Para poder ver el resultado del código de nuestro componente en pantalla debemos renderizarlo. Renderizar es el proceso en el cual React va a mostrar o anclar,  los componenetes que escribimos con Reactjs, en una aplicación en la que el usuario pueda verlos o el navegador pueda entenderlos.&lt;/p&gt;

&lt;p&gt;Tenemos que crear un elemento en nuestro HTML; es aquí en donde se renderiza todo el código que hagamos ,por lo general es un div, que generalmente al configurar un proyecto viene  por defecto configurado.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ebk_UZ5A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xpaerxas4rv3xo7i8a5h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ebk_UZ5A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xpaerxas4rv3xo7i8a5h.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Es por esto que todas las aplicaciones hechas con React solo contienen un archivo HTML.&lt;/p&gt;

&lt;p&gt;En &lt;strong&gt;el index.js&lt;/strong&gt; escribimos:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nyV-cG1L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/emlt65bbegaqfqhy3aok.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nyV-cG1L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/emlt65bbegaqfqhy3aok.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;RectDOM&lt;/code&gt; es una paquete o libreria de Reactjs que nos ayuda a renderizar nuestros elementos dentro de nuestro archivo HTML.&lt;/p&gt;

&lt;p&gt;Ejemplo:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_vBL_ULa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oechaiqva2zjcx1ntf55.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_vBL_ULa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oechaiqva2zjcx1ntf55.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Props
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Definicion:&lt;/strong&gt; Son valores únicos u objetos, contienen un conjunto de datos que se pasan a los componentes mediante los elementos, utilizando una convención de nomenclatura similar a los atributos de etiquetas HTML.&lt;/p&gt;

&lt;h3&gt;
  
  
  ¿Para qué sirven?
&lt;/h3&gt;

&lt;p&gt;El propósito principal de los &lt;strong&gt;&lt;em&gt;Props&lt;/em&gt;&lt;/strong&gt; en React es proporcionar las siguientes funcionalidades a un component.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Pasar datos personalizados a un componente.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Desencadenar cambios de estado.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w-ZwEhfa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e6ptud53sa2igg6ypvcs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w-ZwEhfa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e6ptud53sa2igg6ypvcs.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Por ejemplo. Cuando creamos un elemento; dentro de la etiqueta, del lado izquierdo, primero pondremos el nombre del componente. En el caso de la imagen que pusimos como ejemplo es &lt;em&gt;"Element"&lt;/em&gt;, del lado derecho pondremos el nombre de nuesta propiedad &lt;em&gt;"reacProp"&lt;/em&gt;, esta a su vez está pasando un tipo de dato string a nuestro elemento &lt;em&gt;"Element"&lt;/em&gt;:&lt;/p&gt;

&lt;p&gt;Cuando creas una propiedad, como la propiedad reactProp, esta se agrega al objeto de accesorios nativos de React y podra ser invocada al igual que un objeto en JS con la nomeclatura &lt;code&gt;props.reactProp&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Desestructuración de Props
&lt;/h3&gt;

&lt;p&gt;También podemos desestructura las props entre llaves. Por ejemplo:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7G0aik24--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dtbn9v8eqzomws0hd1em.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7G0aik24--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dtbn9v8eqzomws0hd1em.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Proptypes.
&lt;/h3&gt;

&lt;p&gt;Sirven para definir un valor por defecto a las propiedades y verificar que ese valor sea correcto, en caso que el valor de alguna propiedad no sea enviado por el componente padre.&lt;br&gt;
Para importarlo debemos escribir la nomenclatura &lt;code&gt;import ProTypes from 'prop-Types'&lt;/code&gt; e invocarla con &lt;code&gt;ComponenteNombre.propType&lt;/code&gt; como se muestra en el siguiente ejemplo:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--75M3My9W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9lf9yyaltcgk5639kmr0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--75M3My9W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9lf9yyaltcgk5639kmr0.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para exportar nuestro componente a otros archivos de nuestra aplicación con los valores de definidos en las propTypes usamos la sintaxis &lt;code&gt;export default ComponenteNombre&lt;/code&gt; .&lt;/p&gt;

&lt;h3&gt;
  
  
  DefaultProps
&lt;/h3&gt;

&lt;p&gt;Agrega un valor por defecto a alguna propiedad en caso de que no lo tenga.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xsXXendz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/98x8q8q5cm6sudevmc8d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xsXXendz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/98x8q8q5cm6sudevmc8d.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>spanish</category>
    </item>
    <item>
      <title>React (Conceptos Básicos)</title>
      <dc:creator>Alberto Sandoval</dc:creator>
      <pubDate>Mon, 10 May 2021 01:46:04 +0000</pubDate>
      <link>https://dev.to/betosandoval/1-mis-apuntes-de-react-conceptos-basicos-f5k</link>
      <guid>https://dev.to/betosandoval/1-mis-apuntes-de-react-conceptos-basicos-f5k</guid>
      <description>&lt;h1&gt;
  
  
  &lt;em&gt;¿Qué es React?&lt;/em&gt;
&lt;/h1&gt;

&lt;p&gt;Es una librería de código abierto de Java Script que nos permite crear interfaces de usuario.&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;em&gt;Características&lt;/em&gt;
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Usa un virtual DOM&lt;/em&gt; en vez del DOM real haciendo el manejo de este más fácil.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Es &lt;em&gt;declarativa&lt;/em&gt;, puedes crear tus propias etiquetas que al final de cuentas son &lt;a href="https://dev.to/betosandoval/2-react-componentes-2mg2"&gt;componentes&lt;/a&gt;, esto hace fácil seguir patrones de diseño y  crear interfaces de usuario interactivas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Es &lt;em&gt;eficiente&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Predecible&lt;/em&gt;. Fluye en una sola vía.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;React está basado en &lt;a href="https://dev.to/betosandoval/2-react-componentes-2mg2"&gt;&lt;strong&gt;&lt;em&gt;Componentes&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;. Pequeñas piezas de código encapsuladas que pueden tener un estado o no, permite organizar aplicaciones complejas en pequeños componentes sencillos y fáciles de mantener.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Se puede trabajar con React del lado del servidor con Node&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Se puede crear aplicaciones móviles con Reac Native y aplicaciones de escritorio con Electron.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Virtual DOM
&lt;/h1&gt;

&lt;p&gt;VDOM Es una representación en memoria de lo que es el DOM real del navegador. Actua como intermediario entre el estado de la aplicación y la UI que está viendo el usuario de tu proyecto.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reconciliación
&lt;/h3&gt;

&lt;p&gt;Este concepto describe la manera en que React manipula y actualiza los componentes. Para ello usa un algortmo diferencial para actualizar los elementos del árbol de tu aplicación.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fiber (Fibras)
&lt;/h3&gt;

&lt;p&gt;Son objetos internos de React que mantienen información del árbol de los componentes. Se podiran vislumbrar como partes pequeñas que nos ayudan a actualizar la información de los nodos.&lt;/p&gt;

&lt;h1&gt;
  
  
  JSX
&lt;/h1&gt;

&lt;p&gt;El JSX es una combinación de Java Script con XML, nos provee una sintaxis fácil de usar  ("syntactic sugar").&lt;/p&gt;

&lt;p&gt;Ejemplo: a la constate llamada "h1Tag"  le asignamos como valor una etiqueta de HTML.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--N4oK4pp9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aa2me272ot8i5bthg81r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--N4oK4pp9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aa2me272ot8i5bthg81r.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Crear un proyecto en React.
&lt;/h1&gt;

&lt;p&gt;Para crear un proyecto en React usamos el comando:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8G4LaHtU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hrwzd0mo1yn0ru2irfnf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8G4LaHtU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hrwzd0mo1yn0ru2irfnf.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Con este comando se creara un proyecto con el nombre "my-app". Para personalizar el nombre de nuestro proyecto debemos cambiar "my-app" por el nombre deseado.&lt;/p&gt;

&lt;p&gt;npm start. Comienza a ejecutar un servidor para nuestra la aplicación que acabamos de crear.&lt;/p&gt;

&lt;p&gt;En mi próximo post publicare mis apuntes sobre los &lt;a href="https://dev.to/betosandoval/2-react-componentes-2mg2"&gt;componentes&lt;/a&gt;  en React.&lt;/p&gt;

</description>
      <category>react</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>apuntes</category>
    </item>
    <item>
      <title>Paginas Estaticas vs Paginas Dinamicas</title>
      <dc:creator>Alberto Sandoval</dc:creator>
      <pubDate>Fri, 04 Dec 2020 03:29:31 +0000</pubDate>
      <link>https://dev.to/betosandoval/paginas-estaticas-vs-paginas-dinamicas-36gi</link>
      <guid>https://dev.to/betosandoval/paginas-estaticas-vs-paginas-dinamicas-36gi</guid>
      <description>&lt;p&gt;Paginas estáticas: &lt;/p&gt;

&lt;p&gt;Son aquellas que tienes poca o nula interacción con el usuario, generalmente informativas, un ejemplo de estas puede ser alguna "Landing page". La información en este tipo de paginas no cambia, si se genera un cambio, este es sutil y en periodos extensos de tiempo.&lt;br&gt;
Estas paginas no están conectadas a una base de datos ya que los cambios se generan del lado del servidor, no del cliente.&lt;/p&gt;

&lt;p&gt;Paginas Dinámicas:&lt;/p&gt;

&lt;p&gt;Este tipos de paginas pueden denominarse web apps ya que tienen funciones avanzadas que le permiten interactuar con el usuario.&lt;br&gt;
Estas paginas están conectadas a una base de datos que hacen posible la interacción con el usuario, asico como el almacenamiento de información, por ejemplo la información de un formulario de login.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
