React - Preguntas Frecuentes
Esta guía pretende reunir contenido de calidad sobre los conceptos básicos de React en un solo sitio para tener una referencia rápida.
Recuerda que todos estamos aprendiendo. Lea, haz pruebas, ensucie (está bien).
Otros idiomas
Contenido
- Comienzo
- Historia
- Creando un Proyecto con React
- ¿Porque usar React?
- JSX
- El 'Virtual DOM'
- Elementos React
- Componentes
- Métodos del Ciclo de Vida
- Tipos de Componentes
- Buscando Componentes
- Propiedades
- Prototipos
- Estado
- Binding
- Eventos
- Renderizado
- Claves
- Referencias
- Contexto
- Formularios
- Controlled Components
- React Ajax
- Patrones
- Gotchas
- PATENTES
- Mixins
- Internacionalización
- Rendimiento
- Animaciones
- SVG y React
- Guias de estilo para React
- Redux and Mobx
- Añadir React a una Aplicacion existente
- CSS y React
- Testeo
- Vídeos de Conferencias
- Contribuyendo a React JS
- Universal React
- Profundizando en React
- React Fiber
- Cursos en Video
- Accesibilidad (A11Y)
- Charlas
- Entrenamiento
- Libros
- Listas de Correo
- Preguntas de entrevistas
#Comienzo
No sé nada de React, ¿que debería ver / leer antes de empezar?
- Documentación Oficial de React
- Pensando en React - Pete Hunt
- Pete Hunt: React: Rethinking best practices (JSConf EU 2013)
- 🔥 Todas las cosas terribles que hice la primera vez que escribí una Aplicación Compleja con React Raquel @raquelxmoss
- Enseñando React sin usar React Eric Clemmons @ericclemmons
- React en 7 Minutos es un poco antiguo, pero es un buen comienzo
- Introducción a React Eric W. Greene / Microsoft Virtual Academy
- Libros
#Historia
- JSConfUS 2013 - Tom Occhino and Jordan Walke: JS Apps at Facebook The one where React became #OSS
- Our First 50,000 Stars Vjeux @vjeux
#Creando un Proyecto con React
¿Como creo un nuevo Proyecto con React?
- 💯 create-react-app
- nwb si necesitas más control sobre la configuración
¿Donde puedo encontrar videos de como usar 'React Create App'?
React Create App + Express @sprjrx @ladyleet
¿Donde puedo probar React Online?
#¿Porque usar React?
- Componentes Componibles
- Fácil uso en proyectos existentes
- Declarativo
- Funcional / Inmutable
Es rápido?
- ¿Es React.js rápido? Más rápido que {framework}? … ¿o más preguntas relevantes que hacer? Jeff Barczewski @jeffbski
¿Entonces que hace tan bueno a React?
- 7 puntos fuertes sobre React que todo desarrollador debería saber Samuel Hapák @samuha
- Design Principles
#JSX ¿Qué es JSX?
JSX es un preprocesador que añade sintaxis XML a JavaScript. Puedes perfectamente usar React sin JSX, pero JSX hace React mucho más elegante. - http://buildwithreact.com
- Tutorial: JSX
- JSX en Profundidad
- JSX en React: El otro lado de la moneda Cory House @housecor
- ¿Qué significa JSX? Tom Occhino @tomocchino
¿Qué hace React realmente por mí?
Este es el tipo de cosas que JSX evita que tengas que administrar Jonny Buchanan @jbscript
#El 'Virtual DOM'
El DOM virtual proporciona una implementación ligera del DOM y del sistema de eventos. En lugar de tratar con el navegador, manipula una versión en memoria del DOM.
¿Qué es el Virtual DOM?
- React's diff algorithm Christopher Chedeau @vjeux
- La única cosa que nadie explica correctamente sobre React - ¿Por qué el Virtual DOM? Sai Kishore Komanduri @saiki
- Pete Hunt: Los secretos del Virtual DOM de React (FutureJS 2014)
¿Todo sobre el Virtual DOM es por la velocidad?
No
Ver :
https://twitter.com/dan_abramov/status/790326092582252544 https://twitter.com/acdlite/status/779693791607336960
I wonder if we can reclaim the VDOM term to mean "Value DOM", as in Value Type, instead of "Virtual DOM"...? More accurate. @sebmarkbage
> It doesn't improve perf over hand written DOM code but it's hard to write on scale. React scales well. **@dan_abramov**
> React ultimately has to call browser APIs at some point, it can't possibly be faster than writing the same exact calls by hand **@dan_abramov**
>React will not do anything that you cannot. By definition everything it does can be reproduced (and some people have with other libraries/frameworks that follow similar conventions). The point is not that React does something that you can't, but rather that by introducing React to your application you are relieved of having to worry about manually handling your DOM, manually determining how to update it efficiently, minimizing traversals, etc. - [Sean Grogg](https://www.quora.com/Is-ReactJS-faster-than-direct-DOM-manipulation-with-JavaScript-or-jQuery)
Key Takeaway:
React keeps your product reasonably fast without you having to think about it all the time, or to jump through the hoops @dan_abramov
#Elementos React
Los elementos son los bloques de construcción más pequeños en las aplicaciones React. Los Elementos son los componentes que están "hechos de ..." — Documentación de React
- Qué hace un 'Elemento' un 'Elemento' vs un componente? Tim Arney @timarney
- Entendiendo la diferencia entre un Elemento React y un Componente React Alex Johnson
#Componentes
Los Componentes te permiten dividir la interfaz en piezas independientes y reutilizables, y pensar en cada pieza de forma aislada. Conceptualmente, los componentes son como funciones de JavaScript. - Documentación de React
¿Cuáles son las mejores prácticas al trabajar con componentes?
- Keep it (F)ocused. (Mantenlo enFocado)
- Keep it (I)ndependent. (Mantenlo Independiente)
- Keep it (R)eusable. (Mantenlo Reutilizable)
- Keep it (S)mall. (Mantenlo Pequeño)
- Keep it (T)estable. (Mantenlo Testeable)
- en definitiva,
FIRST
.
— Addy Osmani https://addyosmani.com/first
Ver : https://twitter.com/mxstbr/status/790084862954864640 Max Stoiber @mxstbr
#Métodos del Ciclo de Vida
Los componentes tienen varios "métodos de ciclo de vida" que le permiten anular / ejecutar código en momentos concretos.
¿Qué son los métodos del ciclo de vida?
- Diagrama de los Ciclos de vida de los Componentes React Eduardo Bouças @eduardoboucas
- Ir más allá con los métodos del ciclo de vida de React Jamie Barton
- Especificaciones de los Componentes y los Ciclos de Vida
- My #reactjs component lifecycle cheatsheet for quick reference Peter Beshai @pbesh
- Los Ciclos de Vida de los Componentes React Osmel Mora @osmel_mora
#Tipos de Componentes
Hay dos tipos principales de componentes: funcionales y de clase
// Componente Funcional
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
// Componente de Clase
class Welcome extends React.Component {
render() {
return <h1>Hello, {this.props.name}</h1>;
}
}
Los componentes se pueden utilizar (compuestos) de muchas maneras, ver los siguientes enlaces para patrones e ideas para la creación de componentes.
¿Cómo decido qué tipo de Componente utilizar?
- React.Component vs React.createClass Naman Goel & Zach Silveira
- React.createClass vs extends React.Component Todd Motto
- 4 tipos de Componentes React diferentes Peter Bengtsson @peterbe
- Functions as Child Components and Higher Order Components Ken Ding
Funciones sin Estado <Código />
- Componentes React Funcionales sin Estado: Nueve puntos que pudo haber pasado por alto Cory House @housecor
- Abrazando Functiones en React A. Sharif @sharifsbeat
Presentational and Container Components <Código />
- Componentes de Presentación y Componentes Contedor Dan Abramov @dan_abramov
Higher-Order Components <Código />
- React Higher Order Components in depth @franleplant
- Higher Order Components: A React Application Design Pattern Jack Franklin @Jack_Franklin
- Mixins Are Dead. Long Live Composition Dan Abramov @dan_abramov
- Higher Order Components: Theory and Practice
- Real World Examples of Higher-Order Components Mehdi Mollaverdi @mehdimollaverdi
- Start Reacting: HOC OliverFencott @OliverFencott
Función como Componente hijo <Código />
- Función como Componente hijo Merrick Christensen @iammerrick
- I've mentioned this before, but I'm a big fan of child functions in React Brian Vaughn @brian_d_vaughn
- He mencionado esto antes, pero soy un gran fan de las funciones hijas en React Brian Vaughn @brian_d_vaughn
¿Qué tipos de Componentes hay?
- React Component Jargon as of August 2016 Anthony Comito @a_comito
#Buscando Componentes
¿Dónde hay buenos sitios para encontrar componentes?
#Propiedades
¿Qué son las Propiedades?
props (abreviatura de propiedades) son la configuración de un Componente, sus opciones si es posible. Son recibidos desde arriba y son inmutables en lo que respecta al Componente que los recibe. - react-guide
Ver : props vs state
¿Como puedo pasar Propiedades?
¿Como paso valores Booleanos?
- ¿
<Foo bar={true} />
y<Foo bar>
en JSX es lo mismo? Jack Franklin @Jack_Franklin
¿Debo usar import, props o context en React?
- Diferencias entre require() y pasar un objeto por propiedades o contexto Dan Abramov @dan_abramov
#Prototipos
Los Prototipos (PropTypes) son esencialmente un diccionario en el que se definen qué propiedades necesita su componente y de que tipo(s) deben ser. - Niels Gerritsen
¿Qué son los Prototipos?
- ¿Qué son los Prototipos? Ryan Glover @themeteorchef
¿Por qué son importantes los Prototipos en React?
- Porque son importantes los Prototipos en React Niels Gerritsen @NielsG89
¿Cómo puedo validar Propiedades?
- Mejor validación de Propiedades en React Moe Sattler @travelperk
#Estado
En un sentido, "estado" significa la representación visual actual de la aplicación en la pantalla... En el sentido React, el "estado" es un objeto que representa las partes de la aplicación que pueden cambiar. Cada componente puede mantener su propio estado, que vive en un objeto llamado this.state. - Dave Ceddia
¿Qué es el Estado en React?
- Guia visual del Estado en React Dave Ceddia @dceddia
¿Cómo manejo el estado?
- Los 5 Tipos de Estado en una aplicación React James K Nelson @james_k_nelson
- State of React #1: A Stateless React App? James K Nelson @james_k_nelson
- A Case for setState Zack Argyle
- ¿Donde conservo los datos de un Componente React?: state, store, static, and this Sam Corcos
- Como manejar el Estado en React. The missing FAQ Osmel Mora @osmel_mora
- Should I keep something in React component state? I made a small cheatsheet. Dan Abramov @dan_abramov
- Best Practices for Component State in React.js Gabe Scholz @gabescholz
- Exploring React’s State Propagation Eric Greene @ericwgreene
¿Cómo puedo desacoplar el estado y la interfaz de usuario?
- Cómo puedo desacoplar el estado y la interfaz de usuario Michel Weststrate @mweststrate
#Binding
El método bind de JavaScript tiene varios usos. Normalmente, se utiliza para preservar el contexto de ejecución de una función que se ejecuta en otro contexto.
¿Qué debe usar para conectar métodos en Clases React?
- To bind or not to bind? Dan Abramov @dan_abramov
- fat Arrow vS Autobind VS bind Dan Abramov @dan_abramov
¿Qué es eso del "Binding"?
- No uses bind cuando pases propiedades Dave Ceddia
- 5 maneras de manejar el Binding Cory House @housecor
- ¿Cómo lidiar con la referencia a
this
dentro de una promesa? Toptal Developers
#Eventos
¿Cómo funciona el sistema de eventos en React?
- Los eventos de React en profundidad Kent C. Dodds, Ben Alpert, & Dan Abramov
#Renderizado
¿Qué debe ir en la función de render?
- Return as soon as you know the answer @SimonRadionov
#Claves
React utiliza las Claves (keys) para ayudar con la reconciliación (es decir, cómo calcula la diferencia del DOM para cada procesamiento).
<ul>
<li key="2015">Duke</li>
<li key="2016">Villanova</li>
</ul>
¿Por qué no puedo poner la key en las propiedades (o definir el valor predeterminado en otro lugar)?
¿Qué debo utilizar para una key?
- Index as a key is an anti-pattern Robin Pokorný @robinpokorny
¿Cuáles son algunos ejemplos en los que debería cambiar manualmente una key?
- The key is using key Tim Arney @timarney
#Referencias
El atributo ref permite guardar una referencia a un elemento React específico o a un componente devuelto por la función render(). Esto puede ser valioso cuando se necesita una referencia, desde dentro de un componente, a algún elemento o componente contenido en la función render(). - reactenlightenment.com
¿Qué son las Referencias (refs) y porqué las Referencias de tipo Sring son malas?
- Refs to Components
- Why do you use findDOMNode()? Dan Abramov @dan_abramov
- String refs are bad in quite a few ways Dan Abramov @dan_abramov
#Contexto
- How to handle React context in a reliable way Osmel Mora @osmel_mora
- How to safely use React context Michel Weststrate @mweststrate
- Context all the things with React Stephen Rivas Jr. (@sprjrx)
#Formularios
¿Cómo puedo crear formularios con React?
- Learn Raw React: Ridiculously Simple Forms James K Nelson @james_k_nelson
¿Cómo puedo validar la entrada de formularios?
- Elegant Form Validation Using React Jordan Schaenzle
- Building validated forms with great UX in React Marcela Hrdá
- react-validation
#Controlled Components
What is a controlled component?
Via Loren Stewart @lorenstewart111 React.js Forms: Controlled Components
A controlled component has two aspects:
-
Controlled components have functions to govern the data going into them on every onChange event, rather than grabbing the data only once, e.g. when a user clicks a submit button. This 'governed' data is then saved to state (in this case, the parent/container component's state).
-
Data displayed by a controlled component is received through props passed down from it's parent/container component.
This is a one-way loop – from (1) child component input (2) to parent component state and (3) back down to the child component via props – is what is meant by unidirectional data flow in React.js application architecture.
#Ajax en React
¿Cuál es la mejor práctica para obtener datos de servidor en los componentes React?
Depende! Ver: React AJAX Best Practices Andrew H Farmer @ahfarmer
- Carga y uso de datos externos con React Chris Coyier @chriscoyier
#Patrones
- Patrones en React @chantastic
- React.js in patterns Krasimir Tsonev
- Patterns For Style Composition In React Brent Jackson @jxnblk
- Haz tus Componentes de React bonitos Mark Brouch @markbrouch
#Gotchas
¿Qué son los Gotchas en React?
- React Gotchas Dave Ceddia
#PATENTES
¿Qué es todo eso que escucho sobre la cláusula de PATENTES de Facebook?
- Some links to point people to when they misinterpret PATENTS clause or spread false claims Dan Abramov @dan_abramov
- React’s license: necessary and open? Luis Villa @luis_in_140
#Mixins
¿Por qué los Mixins se consideran perjudiciales?
- Mixins Considered Harmful Dan Abramov @dan_abramov
#Internacionalización
¿Cómo debo manejar la internacionalización?
- Internacionalización en React Preethi Kasireddy
¿Qué repositorios existen para la internacionalización?
- react-intl
- react-localize @sprjrx
#Librerías de terceros
¿Cómo utilizo Librerías de terceros?
- Integración con Librerías de terceros Rally Coding
#Rendimiento
¿Cómo puedo hacer que mi aplicación sea más rápida?
- Component Rendering Performance in React Grgur Grisogono
- Don‘t use PureComponent everywhere. Measure Dan Abramov @dan_abramov
- React.js pure render performance anti-pattern
- Should I use shouldComponentUpdate? James K Nelson @james_k_nelson
- Reconciliation
- Quick slides on #reactjs performance Juho Vepsäläinen @bebraw
#Animaciones
¿Cómo animo cosas en React?
🔥 💯 [Animando en React](https://youtu.be/Fk--XUEorvc?t=2344 Sarah Drasner) @sarah_edo- Animaciones de la interfaz de usuario con React - El camino correcto Joe Davis
- Animaciones con ReactTransitionGroup Chang Wang @CheapSteak
¿Hay alguna API declarativa para animaciones?
¿Cómo puedo animar las transiciones de página?
- React Page Transition Animations Huan Ji
¿Cuáles son algunos de los mejores repositorios sobre animación en React?
#SVG y React
¿Cómo trabajo con SVG en React?
#Guías de estilo para React
¿Dónde puedo encontrar buenas guías de estilo para React?
#Redux y Mobx
¿Qué es (Redux/Mobx)?
¿Necesito usar (Redux/Mobx)?
- You don’t need Redux if your data never changes. The whole point of it is managing changes. Dan Abramov @dan_abramov
- You Might Not Need Redux Dan Abramov @dan_abramov
- Redux or MobX: An attempt to dissolve the Confusion Robin Wieruch @rwieruch
¿Cómo escalar aplicaciones React-Redux?
- About folder structure, styling, data fetching, etc. Max Stoiber @mxstbr
- Acerca de la estructura de carpetas, estilo, extracción de datos, etc. Max Stoiber @mxstbr
#Añadir React a una Aplicación existente
¿Cómo empiezo a integrar React en una aplicación existente?
- How to Sprinkle ReactJS into an Existing Web Application Andrew Del Prete @andrewdelprete
- Don't Rewrite, React! Ryan Florence
- Migrar con seguridad a React Jamis Charles
#CSS y React
¿Qué pasa con los estilos en React?
- Componentes React reutilizables con estilos en línea reemplazables
- Estilos en Línea
- PANEL ON 'INLINE STYLES' @ShopTalkShow
- CSS en JS puede que no sea la solución a todos sus problemas Alan Souza
- CSS en JS + CSS Modules
- CSS en JS: charla técnica Kent C. Dodds & Sarah Drasner
¿Hay alguna herramienta disponible para convertir 'CSS' a 'CSS en JS'?
- convertir 'CSS' en 'CSS in JS' Kent C. Dodds
#Testeo
- Testeando Aplicaciones React Jack Franklin
- La gente parece reírse de esto, pero creo que es realmente bastante razonable Dan Abramov @dan_abramov
#Vídeos de Conferencias
#Contribuyendo a React JS
¿Dónde puedo aprender sobre como contribuir a React JS?
- Contribuyendo a React JS Kent C. Dodds
#Universal React
- React en el Servidor para principiantes Luciano Mammino @loige
#Pronfundizando en React
- Notas de implementación - Cómo funciona realmente React Dan Abramov @dan_abramov
- Construyendo una Aplicación React desde 0 Paul O'Shannessy @zpao
- React Architecture – OSCON Christopher Chedeau @vjeux
- ReactJS: Bajo el capó Boris Dinkevich @BorisDinkevich
- REACT INTERNALS Zack Argyle @ZackArgyle
#React Fiber
¿Qué es React Fiber?
- Experimental - React Fiber Architecture Andrew Clark @acdlite
- Experimental - What's Next for React Andrew Clark @acdlite
¿Está listo React Fiber?
¿Cómo puedo contribuir a Fiber?
#Cursos en Video
¿Hay buenos recursos de video/cursos para aprender React?
- https://egghead.io/courses/react-fundamentals GRATIS (+ otros de pago)
- https://reactforbeginners.com
- https://app.pluralsight.com/courses/react-redux-react-router-es6
- https://www.pluralsight.com/courses/react-flux-building-applications
- https://frontendmasters.com/courses/react-intro (they have a bunch)
- http://courses.reactjsprogram.com/courses/reactjsprogrambundle
- https://LearnRedux.com
- https://egghead.io/courses/manage-complex-state-in-react-apps-with-mobx
#Accesibilidad (A11Y)
¿Qué pasa con la accesibilidad?
- How to design for accessibility Note: not specific to React but a solid primer on the topic
¿Cómo manejo la accesibilidad en React?
- Excerpt from React.js Conf 2015 - Hype! Ryan Florence
- Bringing the Web Back to the Blind by Ryan Florence Nota: no es específico de React, sino un principio sólido sobre el tema.
#Charlas
- React to the Future - Slide Deck Elijah Manor @elijahmanor
- React Things - PDF Slides Jeff Winkler @winkler1
#Entrenamiento
¿Dónde puedo obtener entrenamiento sobre React?
Micheal Jackson @mjackson & Ryan Florence @ryanflorence
*Brian Holt* @holtbt
- https://btholt.github.io/es6-react-pres
- https://btholt.github.io/complete-intro-to-react
- https://github.com/btholt/react-redux-workshop
#Libros
¿Dónde puedo encontrar buenos libros sobre React?
- React Enlightenment Cody Lindley @codylindley
- Build your first real world React.js application Max Stoiber @mxstbr
- SurviveJS React
- Fullstack React
#Listas de Correo
¿Dónde puedo encontrar listas de correo sobre React?
#Preguntas de entrevistas