<?xml version="1.0"?>
<rss version="2.0">
   <channel>
      <title>REACT by Lumi One</title>
      <link>https://padlet.com/lumione60/248284ruvfjjdhb5</link>
      <description>REALIZADO EN CONJUNTO CON SELENE OCANTO</description>
      <language>en-us</language>
      <pubDate>2022-12-09 22:22:12 UTC</pubDate>
      <lastBuildDate>2022-12-16 20:07:00 UTC</lastBuildDate>
      <webMaster>hello@padlet.com</webMaster>
      <image>
         <url></url>
      </image>
      <item>
         <title>Create-react-app </title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2416092420</link>
         <description><![CDATA[<div>Create React App es una forma oficialmente admitida de crear aplicaciones React de una sola página. Ofrece una configuración de construcción moderna sin configuración.</div>]]></description>
         <enclosure url="https://create-react-app.dev/docs/getting-started" />
         <pubDate>2022-12-09 22:27:25 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2416092420</guid>
      </item>
      <item>
         <title>VITE</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2416095819</link>
         <description><![CDATA[<div>Vite es una herramienta de construcción que tiene como objetivo cerrar la brecha entre el desarrollo web actual y el de próxima generación. Se enfoca en brindar una experiencia más rápida y de mayor rendimiento para desarrolladores y proyectos web modernos.<br><br></div><div>Vite se basa en esbuild, un paquete de JavaScript escrito en Go, que agrupa las dependencias de 10 a 100 veces más rápido que los paquetes basados ​​en JavaScript.<br><br></div><div><br><br></div>]]></description>
         <enclosure url="https://blog.logrocket.com/vite-3-vs-create-react-app-comparison-migration-guide/" />
         <pubDate>2022-12-09 22:35:27 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2416095819</guid>
      </item>
      <item>
         <title>DOM</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2416096735</link>
         <description><![CDATA[<div>El <em>DOM</em> (Document Object Model, en español <strong>Modelo de Objetos del Documento</strong>) es una <a href="https://developer.mozilla.org/es/docs/Glossary/API">API</a> definida para representar e interactuar con cualquier documento <a href="https://developer.mozilla.org/es/docs/Glossary/HTML">HTML</a> o <a href="https://developer.mozilla.org/es/docs/Glossary/XML">XML</a>. El DOM es un modelo de documento que se carga en el <a href="https://developer.mozilla.org/es/docs/Glossary/Browser">navegador web</a> y que representa el documento como un árbol de nodos, en donde cada nodo representa una parte del documento (puede tratarse de un <a href="https://developer.mozilla.org/es/docs/Glossary/Element">elemento</a>, una cadena de texto o un comentario).</div>]]></description>
         <enclosure url="https://developer.mozilla.org/es/docs/Glossary/DOM" />
         <pubDate>2022-12-09 22:37:46 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2416096735</guid>
      </item>
      <item>
         <title>DOM VIRTUAL</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2416097809</link>
         <description><![CDATA[<div>El DOM virtual (VDOM) es un concepto de programación donde una representación ideal o “virtual” de la IU se mantiene en memoria y en sincronía con el DOM “real”, mediante una biblioteca como ReactDOM. Este proceso se conoce como <a href="https://es.reactjs.org/docs/reconciliation.html">reconciliación</a>.</div>]]></description>
         <enclosure url="https://es.reactjs.org/docs/faq-internals.html#:~:text=%C2%BFQu%C3%A9%20es%20el%20DOM%20virtual,proceso%20se%20conoce%20como%20reconciliaci%C3%B3n." />
         <pubDate>2022-12-09 22:40:40 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2416097809</guid>
      </item>
      <item>
         <title>¿Hay una forma recomendada de estructurar los proyectos React?</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2416177914</link>
         <description><![CDATA[<div><br>React no tiene opiniones sobre cómo poner los archivos en carpetas. Dicho esto, hay algunos enfoques comunes que son populares en el ecosistema que podrías considerar.</div><div>Agrupación por funcionalidades o rutas</div><div><br>Una forma común de estructurar proyectos es ubicar CSS, JS y tests juntos dentro de carpetas agrupadas por funcionalidad o ruta.<br><br></div><pre>common/
  Avatar.js
  Avatar.css
  APIUtils.js
  APIUtils.test.js
feed/
  index.js
  Feed.js
  Feed.css
  FeedStory.js
  FeedStory.test.js
  FeedAPI.js
profile/
  index.js
  Profile.js
  ProfileHeader.js
  ProfileHeader.css
  ProfileAPI.js</pre><div><br>La definición de una “funcionalidad” no es universal, y depende de ti elegir la granularidad. Si no puedes pensar en una lista de carpetas de nivel superior, puede preguntarle a los usuarios de tu producto cuáles son las partes principales y usar su modelo mental como estructura.</div><div>Agrupando por tipo de archivo</div><div><br>Otra forma popular de estructurar proyectos es agrupar archivos similares, por ejemplo:</div><pre>api/
  APIUtils.js
  APIUtils.test.js
  ProfileAPI.js
  UserAPI.js
components/
  Avatar.js
  Avatar.css
  Feed.js
  Feed.css
  FeedStory.js
  FeedStory.test.js
  Profile.js
  ProfileHeader.js
  ProfileHeader.css</pre><div><br>Algunas personas también prefieren ir más lejos y separar los componentes en diferentes carpetas dependiendo de su función en la aplicación. Por ejemplo, <a href="http://bradfrost.com/blog/post/atomic-web-design/">Atomic Design</a> es una metodología de diseño basada en este principio. Recuerda que a menudo es más productivo tratar estas metodologías como ejemplos útiles en lugar de reglas estrictas a seguir.</div><div>Evita el exceso de anidación</div><div><br>Hay muchos puntos débiles asociados con el anidamiento profundo de directorios en proyectos JavaScript. Se vuelve más difícil escribir importaciones relativas entre ellas o actualizar esas importaciones cuando se mueven los archivos. A menos que tengas una razón muy convincente para usar una estructura de carpetas profunda, considera limitarte a un máximo de tres o cuatro carpetas anidadas dentro de un solo proyecto. Por supuesto, esto es solo una recomendación y puede que no sea relevante para tu proyecto.</div><div><br></div><div><br><br></div><pre>common/
  Avatar.js
  Avatar.css
  APIUtils.js
  APIUtils.test.js
feed/
  index.js
  Feed.js
  Feed.css
  FeedStory.js
  FeedStory.test.js
  FeedAPI.js
profile/
  index.js
  Profile.js
  ProfileHeader.js
  ProfileHeader.css
  ProfileAPI.js</pre><div><br>La definición de una “funcionalidad” no es universal, y depende de ti elegir la granularidad. Si no puedes pensar en una lista de carpetas de nivel superior, puede preguntarle a los usuarios de tu producto cuáles son las partes principales y usar su modelo mental como estructura.</div><div>Agrupando por tipo de archivo</div><div><br>Otra forma popular de estructurar proyectos es agrupar archivos similares, por ejemplo:</div><pre>api/
  APIUtils.js
  APIUtils.test.js
  ProfileAPI.js
  UserAPI.js
components/
  Avatar.js
  Avatar.css
  Feed.js
  Feed.css
  FeedStory.js
  FeedStory.test.js
  Profile.js
  ProfileHeader.js
  ProfileHeader.css</pre><div><br>Algunas personas también prefieren ir más lejos y separar los componentes en diferentes carpetas dependiendo de su función en la aplicación. Por ejemplo, <a href="http://bradfrost.com/blog/post/atomic-web-design/">Atomic Design</a> es una metodología de diseño basada en este principio. Recuerda que a menudo es más productivo tratar estas metodologías como ejemplos útiles en lugar de reglas estrictas a seguir.</div><div>Evita el exceso de anidación</div><div><br>Hay muchos puntos débiles asociados con el anidamiento profundo de directorios en proyectos JavaScript. Se vuelve más difícil escribir importaciones relativas entre ellas o actualizar esas importaciones cuando se mueven los archivos. A menos que tengas una razón muy convincente para usar una estructura de carpetas profunda, considera limitarte a un máximo de tres o cuatro carpetas anidadas dentro de un solo proyecto. Por supuesto, esto es solo una recomendación y puede que no sea relevante para tu proyecto.</div><div><br></div><div><br><br></div>]]></description>
         <enclosure url="https://es.reactjs.org/docs/faq-structure.html" />
         <pubDate>2022-12-10 03:06:14 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2416177914</guid>
      </item>
      <item>
         <title>diferencias entre vite y  CRA</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2416189139</link>
         <description><![CDATA[<div>Cuando comience a desarrollar con Vite, lo primero que probablemente notará es la diferencia en la resolución de rutas. A diferencia de CRA, Vite no tiene una srcruta incorporada.<br><br></div><div>Entonces, en lugar de importar archivos y componentes en su aplicación React de esta manera:<br><br></div><pre>importar tarjetas desde "componentes/tarjetas" ;   </pre><div><br>Tendrás que importarlos así:<br><br></div><pre>importar Tarjetas desde “/ src / components / cards . jsx ”   </pre><div><br>Afortunadamente, hay una solución para resolver esta ruta.<br><br></div><div>Vaya a la carpeta raíz del proyecto, abra el archivo y reemplace el código existente:vite.config.js<br><br><br></div><pre>importar { defineConfig } desde "vite" ; importar reaccionar desde "@vitejs/plugin-react" ;   
<br></pre><div><br></div><pre>exportar defineConfig predeterminado ({   complementos : [ reaccionar ()], });  
<br></pre><div>Con lo siguiente:<br><br></div><pre>importar { defineConfig } desde "vite" ; importar reaccionar desde "@vitejs/plugin-react" ;   
<br>export default defineConfig ({ <pre>  resolve : { <pre>    alias : [ { <pre>        find : "common" , 
<br><pre>        replace : resolve ( __dirname , "src/common" ), }, ], },</pre><br><br><pre><br><pre>  complementos : [ reaccionar ()], });    </pre></pre></pre></pre></pre></pre><div><br></div><div>Guarde el código y ahora debería poder usar rutas absolutas en su proyecto.<br><br>Variables de entorno<br>Otra diferencia entre Create React App y Vite es la convención de nomenclatura de variables de entorno. Si está utilizando variables de entorno en su proyecto, querrá reemplazar el REACT_APP_prefijo con VITE_.<br><br></div><pre>//En lugar de esto <pre>REACT_APP_ API_KEY = 1234567890. . //Utilice este <pre>VITE_API_KEY = 1234567890. . 
<br></pre></pre></pre><div>Cambiar las variables una por una puede ser una molestia, especialmente si tiene muchas variables presentes en el archivo. Afortunadamente, el paquete compatible con vite-plugin-env nos permite usar variables de entorno sin cambiar sus nombres..env<br>Use el siguiente comando para instalar el paquete vite-plugin-env-compatible:<br><br><br></div><pre>npm i vite - plugin - env ​​- compatible</pre><div>A continuación, vaya al archivo en la carpeta raíz del proyecto y agregue el siguiente código:vite.config.js<br><br><br></div><pre>importar envCompatible desde 'vite-plugin-env-compatible' ; 
<br><pre>exportar defineConfig predeterminado ({ ... 
<br><pre>  envPrefix : 'REACT_APP_' , 
<br></pre>
<br><pre>  complementos : [ <pre>    reaccionar (),<pre>    envCompatible<pre>  ], });</pre></pre></pre></pre></pre></pre><div><br></div><div>La envPrefixpropiedad le indicará a Vite que use variables con un REACT_APP_prefijo. Ahora puede usar variables de entorno en su proyecto sin cambiar los nombres. Sin embargo, aún tendrá que reemplazar con en su código.process.envimport.meta.env<br><br></div><div>Puede usar la función de búsqueda en su IDE para encontrar y reemplazar rápidamente todo en su base de código.process.env<br><br></div><div><br><br></div><div><br><br></div><div><br><br></div><div><br><br></div><div><br><br></div><div><br><br></div><div><br><br></div><div><br><br></div><div><br><br></div><div><br><br></div><div><br></div><div><br><br></div><div><br><br></div><div><br><br></div><div><br><br></div>]]></description>
         <enclosure url="https://blog.logrocket.com/vite-3-vs-create-react-app-comparison-migration-guide/#differences-between-create-react-app-and-vite" />
         <pubDate>2022-12-10 03:45:12 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2416189139</guid>
      </item>
      <item>
         <title>QUE ES JSX?</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2416190284</link>
         <description><![CDATA[<div>Considera la declaración de esta variable:</div><pre>const element = &lt;h1&gt;Hello, world!&lt;/h1&gt;;</pre><div><br>Esta curiosa sintaxis de etiquetas no es ni un string ni HTML.</div><div><br>Se llama JSX, y es una extensión de la sintaxis de JavaScript. Recomendamos usarlo con React para describir cómo debería ser la interfaz de usuario. JSX puede recordarte a un lenguaje de plantillas, pero viene con todo el poder de JavaScript.</div><div><br>JSX produce “elementos” de React. Exploraremos como renderizarlos en el DOM</div>]]></description>
         <enclosure url="https://es.reactjs.org/docs/introducing-jsx.html" />
         <pubDate>2022-12-10 03:48:35 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2416190284</guid>
      </item>
      <item>
         <title>COMPONENTES Y ACCESORIOS?</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2416190874</link>
         <description><![CDATA[<div><br></div><div>Los componentes le permiten dividir la interfaz de usuario en piezas independientes y reutilizables, y pensar en cada pieza de forma aislada. Esta página proporciona una introducción a la idea de los componentes. Puede encontrar una <a href="https://reactjs.org/docs/react-component.html">referencia detallada de la API del componente aquí</a> .</div><div><br>Conceptualmente, los componentes son como funciones de JavaScript. Aceptan entradas arbitrarias (llamadas "accesorios") y devuelven elementos React que describen lo que debería aparecer en la pantalla.</div>]]></description>
         <enclosure url="https://reactjs.org/docs/components-and-props.html" />
         <pubDate>2022-12-10 03:50:45 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2416190874</guid>
      </item>
      <item>
         <title>PROPS</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2416191820</link>
         <description><![CDATA[<div>Reaccionar accesorios</div><div><br>React Props son como argumentos de función en JavaScript <em>y</em> atributos en HTML.<br><br></div><div><br>Para enviar accesorios a un componente, use la misma sintaxis que los atributos HTML:<br><br></div><div>Ejemplo</div><div><br>Agregue un atributo de "marca" al elemento Car:<br><br></div><pre>const myElement = &lt;Car brand="Ford" /&gt;;</pre><div><br></div><div><br>El componente recibe el argumento como un propsobjeto:<br><br></div><div>Ejemplo</div><div><br>Utilice el atributo de marca en el componente:<br><br></div><pre>function Car(props) {
  return &lt;h2&gt;I am a { props.brand }!&lt;/h2&gt;;
}</pre>]]></description>
         <enclosure url="https://www.w3schools.com/react/react_props.asp" />
         <pubDate>2022-12-10 03:54:02 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2416191820</guid>
      </item>
      <item>
         <title> ¿Que son los Templates Literal?</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423259524</link>
         <description><![CDATA[<div>&nbsp;</div><div>Nos ayudan a manejar los string de manera inteligente en vez de usar comillas (“) usamos (´´) podemos hacer un salto de línea.</div><div><br></div>]]></description>
         <enclosure url="" />
         <pubDate>2022-12-16 17:45:01 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423259524</guid>
      </item>
      <item>
         <title> ¿Que son los Shorthand property names?</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423261823</link>
         <description><![CDATA[<div><br></div><div>Con las propiedades abreviadas, siempre que tenga una variable que tenga el mismo nombre que una propiedad en un objeto, al construir el objeto, puede omitir el nombre de la propiedad.&nbsp;</div>]]></description>
         <enclosure url="https://ui.dev/shorthand-properties" />
         <pubDate>2022-12-16 17:47:45 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423261823</guid>
      </item>
      <item>
         <title>Destructuring?</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423262708</link>
         <description><![CDATA[<div><em>Destructuring</em>, o destructuración en un lenguaje más hispanizado, es una nueva característica de ES6 para Javascript que nos da la posibilidad de poder coger los datos de objetos o <em>array </em>directamente y de manera múltiple, para extraerlos a variables o constantes.</div><div>&nbsp;</div><div><br></div>]]></description>
         <enclosure url="https://www.nocountryforgeeks.com/destructuring/" />
         <pubDate>2022-12-16 17:48:43 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423262708</guid>
      </item>
      <item>
         <title>Default Parameters?</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423263978</link>
         <description><![CDATA[<div><strong>Parámetros predeterminados de función </strong>permiten que los parámetros con nombre se inicien con valores predeterminados si no se pasa ningún valor o undefined.<br><br></div>]]></description>
         <enclosure url="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Functions/Default_parameters#:~:text=Par%C3%A1metros%20predeterminados%20de%20funci%C3%B3n%20permiten,pasa%20ning%C3%BAn%20valor%20o%20undefined%20." />
         <pubDate>2022-12-16 17:50:12 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423263978</guid>
      </item>
      <item>
         <title>Spread Operator?</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423264596</link>
         <description><![CDATA[<div>&nbsp;El <strong>operador de propagación</strong> es una nueva adición al conjunto de operadores en <a href="https://www.educative.io/answers/javascript-style-guide">JavaScript</a> ES6.Toma un <a href="https://www.educative.io/answers/iterable-vs-iterator">iterable</a> (por ejemplo, una matriz) y lo expande en elementos individuales.<br><br></div><div>El operador de propagación se usa comúnmente para hacer copias superficiales de objetos JS. El uso de este operador hace que el código sea conciso y mejora su legibilidad.<br><br></div>]]></description>
         <enclosure url="https://www.educative.io/answers/what-is-the-spread-operator-in-javascript" />
         <pubDate>2022-12-16 17:50:57 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423264596</guid>
      </item>
      <item>
         <title>Operadores ternarios?</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423266017</link>
         <description><![CDATA[<div>El <strong>operador condicional </strong>(<strong>ternario</strong>) es el único operador en JavaScript que tiene tres operadores. Este operador se usa con frecuencia como atajo para la instrucción.</div>]]></description>
         <enclosure url="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Operators/Conditional_Operator" />
         <pubDate>2022-12-16 17:52:46 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423266017</guid>
      </item>
      <item>
         <title>METODOS DE ARRAYS?</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423336982</link>
         <description><![CDATA[<div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array#m%C3%A9todos_est%C3%A1ticos">Métodos estáticos</a></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/from"><br>Array.from()<br></a><br></div><div>Crea una nueva instancia de Array a partir de similarAUnArray, un objeto iterable o parecido a un <em>array.<br></em><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray"><br>Array.isArray()<br></a><br></div><div>Devuelve true si valor es un <em>array</em>, y false en caso contrario.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/of"><br>Array.of()<br></a><br></div><div>Crea una nueva instancia de Array con un número variable de parámetros, independientemente del número y del tipo de dichos parámetros.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array#propiedades_de_instancia">Propiedades de instancia</a></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/length"><br>Array.prototype.length<br></a><br></div><div>Indica el número de elementos de un <em>array</em>.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/@@unscopables"><br>Array.prototype[@@unscopables]<br></a><br></div><div>Símbolo que contiene todos los nombres de las propiedades que se excluyen de un ámbito de enlace <a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/with">with</a>.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array#m%C3%A9todos_de_instancia">Métodos de instancia</a></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/concat"><br>Array.prototype.concat()<br></a><br></div><div>Devuelve un nuevo <em>array</em> que es la concatenación de aquél sobre el que se invoca, seguido de otros <em>array(s)</em> o valor(es).<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/copyWithin"><br>Array.prototype.copyWithin()<br></a><br></div><div>Copia una secuencia de elementos de un <em>array</em> dentro del propio <em>array</em>.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/entries"><br>Array.prototype.entries()<br></a><br></div><div>Devuelve un nuevo objeto Array Iterator que contiene los pares clave/valor para cada índice del <em>array</em>.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/every"><br>Array.prototype.every()<br></a><br></div><div>Devuelve true si todos los elementos del <em>array</em> cumplen el predicado que recibe como parámetro.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/fill"><br>Array.prototype.fill()<br></a><br></div><div>Asigna un <em>valor</em> estático a todos los elementos del <em>array</em> entre las posiciones inicio y fin.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/filter"><br>Array.prototype.filter()<br></a><br></div><div>Devuelve un nuevo <em>array</em> que contiene todos los elementos de aquél para el cual se llama que cumplan el predicado que se le pasa como parámetro.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/find"><br>Array.prototype.find()<br></a><br></div><div>Devuelve el primer <em>elemento</em> del <em>array</em> que cumpla el predicado que se pasa como parámetro, o undefined si ninguno lo cumple.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex"><br>Array.prototype.findIndex()<br></a><br></div><div>Devuelve el índice del primer elemento del <em>array</em> que cumpla el predicado que se pasa como parámetro, o -1 si nunguno lo cumple.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach"><br>Array.prototype.forEach()<br></a><br></div><div>Llama a la función pasada como parámetro para todos los elementos del <em>array.<br></em><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/includes"><br>Array.prototype.includes()<br></a><br></div><div>Determina si el <em>array</em> contiene el valorBuscado y devuelve true o false según sea el caso.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf"><br>Array.prototype.indexOf()<br></a><br></div><div>Devuelve el índice del primer elemento del <em>array</em> que sea igual a elementoBuscado, o -1 si no existe.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/join"><br>Array.prototype.join()<br></a><br></div><div>Concatena en un string todos los elementos de un <em>array.<br></em><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/keys"><br>Array.prototype.keys()<br></a><br></div><div>Devuelve un nuevo Array Iterator que contiene las claves de cada índice del <em>array.<br></em><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf"><br>Array.prototype.lastIndexOf()<br></a><br></div><div>Devuelve el índice del último elemento del <em>array</em> que sea igual a elementoBuscado, o -1 si no existe.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/map"><br>Array.prototype.map()<br></a><br></div><div>Devuelve un nuevo <em>array</em> que contiene el resultado de llamar a la función pasada como parámetro a todos los elementos del <em>array</em> sobre el que se invoca.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/pop"><br>Array.prototype.pop()<br></a><br></div><div>Elimina el último elemento de un <em>array</em>, y devuelve dicho elemento.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/push"><br>Array.prototype.push()<br></a><br></div><div>Añade uno o más elementos al final de un <em>array</em> y devuelve el nuevo valor de su propiedad length.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce"><br>Array.prototype.reduce()<br></a><br></div><div>Aplica la función pasada como parámetro a un acumulador y a cada valor del <em>array</em>, que se recorre de izquierda a derecha, para reducirlo a un único valor.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/ReduceRight"><br>Array.prototype.reduceRight()<br></a><br></div><div>Aplica la función pasada como parámetro a un <em>acumulador</em> y a cada valor del <em>array</em>, que se recorre de derecha a izquierda, para reducirlo a un único valor.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse"><br>Array.prototype.reverse()<br></a><br></div><div>Invierte el orden de los elementos de un <em>array</em> (el primero pasa a ser el último y el último a ser el primero) en el propio <em>array.</em> Este método modifica el array.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/shift"><br>Array.prototype.shift()<br></a><br></div><div>Elimina el primer elemento de un <em>array</em>, y devuelve dicho elemento.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/slice"><br>Array.prototype.slice()<br></a><br></div><div>Extrae una porción del <em>array</em> sobre el que se llama y devuelve un nuevo <em>array</em>.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/some"><br>Array.prototype.some()<br></a><br></div><div>Devuelve true si al menos un elemento del <em>array</em> cumple con el predicado que se pasa como parámetro.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/sort"><br>Array.prototype.sort()<br></a><br></div><div>Ordena los elementos de un <em>array</em>, modificando éste, y devuelve el array ordenado.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/splice"><br>Array.prototype.splice()<br></a><br></div><div>Añade, borra o modifica elementos de un <em>array</em>.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/toLocaleString"><br>Array.prototype.toLocaleString()<br></a><br></div><div>Devuelve un string adaptado a la configuración regional que representa el <em>array</em> y sus elementos. Redefine el método <a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Object/toLocaleString">Object.prototype.toLocaleString()</a>.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/toString"><br>Array.prototype.toString()<br></a><br></div><div>Devuelve un string que representa el <em>array</em> y sus elementos. Redefine el método <a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Object/toString">Object.prototype.toString()</a>.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift"><br>Array.prototype.unshift()<br></a><br></div><div>Añada uno o más elementos al inicio de un <em>array</em> y devuelve el nuevo valor de length para el <em>array</em> resultante.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/values"><br>Array.prototype.values()<br></a><br></div><div>Devuelve un nuevo objeto Array Iterator que contiene los valores para cada índice del <em>array</em>.<br><br></div><div><a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/@@iterator"><br>Array.prototype[@@iterator]()<br></a><br></div><div>Devuelve un nuevo objeto Array Iterator que contiene los valores para cada índice del <em>array</em>.</div><div><br><br></div>]]></description>
         <enclosure url="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array" />
         <pubDate>2022-12-16 19:23:21 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423336982</guid>
      </item>
      <item>
         <title>HOOK?</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423338220</link>
         <description><![CDATA[<div>es una función de javascript que permite crear/acceder al estado y a los ciclos de vida de React y que, para asegurar la estabilidad de la </div>]]></description>
         <enclosure url="https://openwebinars.net/blog/react-hooks-que-son-y-que-problemas-solucionan/" />
         <pubDate>2022-12-16 19:25:18 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423338220</guid>
      </item>
      <item>
         <title>¿Para qué sirve el Hook useState?</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423340512</link>
         <description><![CDATA[<div>Sirve para&nbsp; incorporar el estado de React a un componente de función.</div><div>&nbsp;</div><div>&nbsp; Ejemplo de la MasterClass donde se hizo uso de &nbsp; UseEffect y UseState<br><br><br></div><div>&nbsp;</div><div><br></div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/1857882037/49076343b608f2076a282c85c6e09c2f/image.png" />
         <pubDate>2022-12-16 19:28:34 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423340512</guid>
      </item>
      <item>
         <title>¿Para qué sirve el Hook useEffect? </title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423341176</link>
         <description><![CDATA[<div>Useeffect sirve para renderizar&nbsp; la API&nbsp; </div>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/1857882037/dfb979067a05dec3cc9cd7f025433c28/image.png" />
         <pubDate>2022-12-16 19:29:42 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423341176</guid>
      </item>
      <item>
         <title>Styled Components?</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423352011</link>
         <description><![CDATA[<div>Styled Components es una de las librerías más populares para inyectar CSS en JavaScript. No es específica para React ni para ningún otro framework. La puedes utilizar junto con cualquier framework basado en componentes.</div>]]></description>
         <enclosure url="https://www.escuelafrontend.com/styled-components-en-react" />
         <pubDate>2022-12-16 19:47:58 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423352011</guid>
      </item>
      <item>
         <title>MANEJO DE STILOS CON CSS EN REACT</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423356213</link>
         <description><![CDATA[<div>¿Cómo agrego clases CSS a los componentes?Pasa una string como la prop className:render() {&nbsp; return &lt;span className="menu navigation-menu"&gt;Menu&lt;/span&gt;}Es común que las clases CSS dependan de las props o del estado del componente:render() {&nbsp; let className = 'menu';&nbsp; if (this.props.isActive) {&nbsp; &nbsp; className += ' menu-active';&nbsp; }&nbsp; return &lt;span className={className}&gt;Menu&lt;/span&gt;}TipSi a menudo escribes código como este, el paquete classnames puede hacerlo más simple.¿Puedo usar estilos en línea?Sí, ve la documentación sobre estilo aquí.¿Los estilos en línea son malos?Las clases CSS son generalmente mejores para el rendimiento que los estilos en línea.¿Qué es CSS-in-JS?“CSS-in-JS” se refiere a un patrón donde el CSS se compone usando JavaScript en lugar de definirlo en archivos externos.Ten en cuenta que esta funcionalidad no es parte de React, sino que es proporcionada por bibliotecas de terceros. React no tiene una opinión sobre cómo se definen los estilos; en caso de dudas, un buen punto de partida es definir tus estilos en un archivo *.css separado como de costumbre y referirse a ellos usando className.¿Puedo hacer animaciones en React?React puede usarse para potenciar animaciones. Revisa React Transition Group, React Motion, React Spring o Framer Motion.</div>]]></description>
         <enclosure url="https://es.reactjs.org/docs/faq-styling.html" />
         <pubDate>2022-12-16 19:55:35 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423356213</guid>
      </item>
      <item>
         <title>QUE ES UN EVENTO EN JS Y COMO SE MANEJA EN REACT?</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423357161</link>
         <description><![CDATA[<div><strong>Manejo de eventos</strong></div><div>&nbsp;</div><div>Los eventos de JavaScript permiten la interacción entre las aplicaciones JavaScript y los usuarios. Cada vez que se pulsa un botón, se produce un evento. Cada vez que se pulsa una tecla, también se produce un evento. No obstante, para que se produzca un evento no es obligatorio que intervenga el usuario, ya que por ejemplo, cada vez que se carga una página, también se produce un evento.<br>&nbsp;<br>&nbsp;<br><br></div><div>Manejar eventos en elementos de React es muy similar a manejar eventos con elementos del DOM. Hay algunas diferencias de sintaxis:<br><br></div><div>•&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Los eventos de React se nombran usando camelCase, en vez de minúsculas.<br><br></div><div>•&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Con JSX pasas una función como el manejador del evento, en vez de un string.<br><br></div><div>En React es algo diferente:<br><br></div><div>Otra diferencia es que en React no puedes retornar false ara prevenir el comportamiento por defecto. Debes, explícitamente, llamar preventDefault. <br><br></div>]]></description>
         <enclosure url="https://es.reactjs.org/docs/handling-events.html" />
         <pubDate>2022-12-16 19:57:28 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423357161</guid>
      </item>
      <item>
         <title>¿Qué es formik y cómo se implementa en React?</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423357942</link>
         <description><![CDATA[<div>Formik utiliza componentes controlados. Además como podemos mantener el estado del formulario localizado y gestionado por Formik es bueno para construir formularios de varios pasos. En Formik se pueden construir formularios de dos maneras diferentes, una con el uso de un componente Formik y campos proporcionados por Formik.<br><br></div><div><br></div>]]></description>
         <enclosure url="https://apiumhub.com/es/tech-blog-barcelona/comparacion-de-librerias-de-react-forms-formik-vs-react-hook-form/" />
         <pubDate>2022-12-16 19:58:46 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423357942</guid>
      </item>
      <item>
         <title>React Router V6 y diferencias con sus versiones anteriores?</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423359797</link>
         <description><![CDATA[<div><br>La versión 5 de React Router incorporó por fin los <em>hooks</em> para dar soporte al nuevo paradigma de React y dentro de pocos meses quedará liberada la versión 6 que trae importantes cambios. De ahí que me haya animado a escribir este artículo para resumir los principales que veremos incorporados.</div><div><br>¡Vamos allá!</div><div>⚠️ Pero antes… una pequeña advertencia</div><div><br>Si algo ha caracterizado a React Router es que a menudo las nuevas versiones rompen características antiguas lo cual hace complicado actualizar la librería sin tener que reescribir algunas partes. Por eso, en el momento en que te plantees usar esta versión (todavía se encuentra en beta) revisa bien toda aquella funcionalidad que te tocará actualizar.</div><div>Nuevo componente Routes</div><div><br>El componente Switch de versiones anteriores que permitía discriminar entre rutas en función del <em>path</em> visitado va a ser reemplazado por el componente Routes .</div><div><br>De este modo, todas las rutas que definamos dentro de este componente mediante &lt;Route path...&gt; así como los enlaces que generemos mediante el componente &lt;Link to...&gt; serán relativos a la ruta padre donde estén definidos.</div><div><br>La idea según la documentación es facilitar que una aplicación pueda verse como distintas partes independientes, cada una de ellas viviendo dentro de una ruta:</div><div><br></div><div><br>En el ejemplo, todos los Link definidos dentro del componente “Products” son relativos a la ruta products/ de modo que por ejemplo el componente &lt;Link to="/iphone" ...&gt; generará &lt;a href="/products/iphone" ...&gt; .</div><div><br>Lo mismo sucederá para las rutas definidas dentro del componente “Products” por medio del componente Routes : todas ellas irán bajo el path /products .</div><div>El componente Outlet</div><div><br>Además, ha aparecido un nuevo componente llamado Outlet en el caso en que queramos llevar la declaración de rutas a un único lugar pero queramos definir un “layout” para cada grupo de rutas:</div><div><br></div><div><br>En este caso, estamos agrupando las rutas de “/products” sobre el componente Products que cuando se “renderea” pinta una barra de navegación con enlaces a productos junto con el componente &lt;Outlet /&gt; , donde se alojarán las rutas hijas definidas, pintando aquella que haga “match” con el “path” visitado (bien ProductsList o bien Product .<br><br></div>]]></description>
         <enclosure url="https://latteandcode.medium.com/react-novedades-de-react-router-6-d8469c17c457" />
         <pubDate>2022-12-16 20:02:03 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423359797</guid>
      </item>
      <item>
         <title>Cómo se consume API’s con Fetching y Axios?</title>
         <author>lumione60</author>
         <link>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423361799</link>
         <description><![CDATA[<div>Usando la API fetch</div><div>La API Fetch proporciona una interfaz JavaScript para getionar peticiones y respuestas HTTP. También provee un método global fetch() que proporciona una forma fácil y lógica de obtener recursos de forma asíncrona por la red.<br><br></div><div>Tienes más ejemplos de uso de API Fetch (GET, POST, PUT, DELETE) en el <a href="https://pablomonteserin.com/curso/javascript/ejemplos-api-fetch/">curso de Javascript</a>.<br><br></div><pre><strong>./app.js</strong><strong>import</strong> {useEffect} <strong>from</strong> 'react';

<strong>const</strong> App = () =&gt; {
  <strong>const</strong> [name, setName] = useState(null);

  useEffect(() =&gt; {
    fetch('https://pokeapi.co/api/v2/pokemon/ditto') // hacemos la petición get
    .then(res =&gt; res.json()) // cuando hayamos terminado (then) parseamos a json la respuesta de la petición
    .then(res =&gt; setName(res.name)); // cuando hayamos terminado (then) actualizamos el estado nombre
  }, []); //Debemos usar los [] para que la petición sólo se ejecute cuando el componente se monte. De lo contrario se ejecutaría en cada render. Si ponemos una variable de estado dentro de los [], la petición se ejecutárá cada vez que esa variable cambie.
  <strong>return</strong> &lt;<strong>p</strong>&gt;{name}&lt;/<strong>p</strong>&gt;;
}</pre><div>Axios</div><div>Para instalarlo, debemos ejecutar en la consola:<br><br></div><pre>npm <strong>i</strong> axios</pre><div>Petición GET</div><pre><strong>import</strong> { useState, useEffect } <strong>from</strong> "react";
<strong>import</strong> axios <strong>from</strong> "axios";

<strong>const</strong> App = (_) =&gt; {
  <strong>const</strong> [name, setName] = useState([]);

  useEffect(() =&gt; {
    axios
      .get(`https://pokeapi.co/api/v2/pokemon/ditto`)
      .then((res) =&gt; {
        setName(res.data.name);
      })
  }, []);

  <strong>return</strong> &lt;<strong>div</strong>&gt;{name}&lt;/<strong>div</strong>&gt;;
};
<strong>export</strong> <strong>default</strong> App;</pre><div>Petición GET con parámetros</div><pre> axios.<strong>get</strong>(`https://example.com`, {params: {paramName:paramValue}})</pre><div>Abreviatura de una petición con axios</div><div>Con el siguiente código, podremos ahorranos poner la <em>base_url</em> en todas las peticiones.<br><br></div><pre><strong>import</strong> axios <strong>from</strong> 'axios';
<strong>const</strong> instance = axios.create({ baseURL: 'https://swapi.dev/api' });
<strong>export</strong> <strong>const</strong> getPeople = () =&gt; instance.get(`/people/`);</pre><div>Dónde poner las peticiones al servidor</div><div>Cuando el proyecto empieza a crecer, es conveniente meter las peticiones al servidor en una carpeta llamada <em>services</em> que contendrá un fichero por cada entidad de la que vamos a hacer peticiones.<br><br></div><div><br></div><div><br></div><div>Cuando con el valor que devuelva una petición de las que tengamos en la carpeta de servicios querramos modificar un estado, lo que haremos es que dicha petición no devolverá un valor, sino una promesa que será gestionada en la página de destino.<br><br></div><div>Ejercicio</div><div>Vamos a hacer una petición a la <a href="https://api.chucknorris.io/">API de chucknorris</a>. Para ello, tendremos un fichero, <em>api.js</em>, en el que definiremos dos métodos:<br><br></div><ul><li>getCategories()</li><li>getJokeFromCategory()</li></ul><div>Estos dos métodos devolverán una promesa que será gestionada en App.js.<br><br></div>]]></description>
         <enclosure url="https://pablomonteserin.com/curso/react/fetch-api-axios/" />
         <pubDate>2022-12-16 20:04:53 UTC</pubDate>
         <guid>https://padlet.com/lumione60/248284ruvfjjdhb5/wish/2423361799</guid>
      </item>
   </channel>
</rss>
