This guide aims to pull together quality content about React core concepts into a central location for quick reference.
In the future it might cover best practices and how and why to use different patterns and techniques. For now enjoy the links and please share/link back to this repo.
Remember we're all learning. Read, Try, Mess Up (it's okay), Learn. It's okay if you don't know all the terms.
#Start
I don't know React what should I watch / read before I start?
- Thinking in React - Pete Hunt
- Pete Hunt: React: Rethinking best practices (JSConf EU 2013)
- Pete Hunt: The Secrets of React's Virtual DOM (FutureJS 2014)
- 🔥 All the terrible things I did the first time I wrote a complex React App Raquel @raquelxmoss
- React in 7 Minutes this is a slightly dated but still really good starter
- Introduction to React Eric W. Greene / Microsoft Virtual Academy
- Books
#History
- JSConfUS 2013 - Tom Occhino and Jordan Walke: JS Apps at Facebook The one where React became #OSS
- Our First 50,000 Stars Vjeux @vjeux
#Creating a React Project
How do I create a new React project?
- 💯 create-react-app
- nwb if you need more control of the setup / config
Where can I find videos for using React Create App?
React Create App + Express @sprjrx @ladyleet
Can I play around with React Online?
#Why use React
What so good about React?
- 7 Strengths of React Every Programmer Should Know About Samuel Hapák @samuha
- Design Principles
#JSX What's JSX?
- JSX in Depth
- React’s JSX: The Other Side of the Coin Cory House @housecor
- What does JSX stand for? Tom Occhino @tomocchino
What does JSX really do for me?
This is the sort of stuff JSX saves you from having to manage Jonny Buchanan @jbscript
#The Virtual DOM What is the Virtual DOM
- The one thing that no one properly explains about React — Why Virtual DOM Sai Kishore Komanduri @saiki
- The VirtualDOM and why it’s so dang fast! Zac Braddy @reactionaryjs
#Props
How do I pass props?
Should I use import, props, or context in React?
- Differences between require() and passing an object via prop or context Dan Abramov @dan_abramov
How do I pass boolean values?
- JSX
<Foo bar={true} />
and<Foo bar>
are equivalent Jack Franklin @Jack_Franklin
How do I validate props?
- Better Prop Validation in React Moe Sattler @travelperk
#PropTypes
What are PropTypes?
- What are PropTypes? Ryan Glover @themeteorchef
#State How do I handle state?
- The 5 Types Of React Application State 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
- Where to Hold React Component Data: state, store, static, and this Sam Corcos
- How to handle state in 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
How can I decouple state and UI?
- How to decouple state and UI Michel Weststrate @mweststrate
#Component Types
What types of components are there?
- React Component Jargon as of August 2016 Anthony Comito @a_comito
Presentational and Container Components <Code />
- Presentational and Container Components Dan Abramov @dan_abramov
Higher-Order Components <Code />
- 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
Function as Child Components <Code />
- Function as Child Components Merrick Christensen @iammerrick
- I've mentioned this before, but I'm a big fan of child functions in React Brian Vaughn @brian_d_vaughn
Stateless Function <Code />
- React Stateless Functional Components: Nine Wins You Might Have Overlooked Cory House @housecor
- Embracing Functions in React A. Sharif @sharifsbeat
How do I decide what type of Component to use?
- React.createClass versus extends React.Component Todd Motto
- 4 different kinds of React component styles Peter Bengtsson @peterbe
- React.Component vs React.createClass Naman Goel & Zach Silveira
#Finding Components
Where are some good places to find components?
#Binding
What should you use for binding methods in React classes?
- fat Arrow vS Autobind VS bind Dan Abramov @dan_abramov
What is this bind thing?
- Don't Use Bind When Passing Props Dave Ceddia
- 5 Approaches for Handling Binding Cory House @housecor
- How to Deal with
this
Reference Inside the Promise? Toptal Developers
#Events
How does the event system work in React?
- React events in depth Kent C. Dodds, Ben Alpert, & Dan Abramov
#Rendering
What should go in the render function?
- Return as soon as you know the answer @SimonRadionov
#Lifecycle Methods
What are Lifecycle Methods?
- React components lifecycle diagram Eduardo Bouças @eduardoboucas
- Going further with React lifecycle methods Jamie Barton
- Component Specs and Lifecycle
- My #reactjs component lifecycle cheatsheet for quick reference Peter Beshai @pbesh
- React component’s lifecycle Osmel Mora @osmel_mora
#Keys
Why can't i put key in default props (or define the default somewhere else)?
What should I use for a key?
- Index as a key is an anti-pattern Robin Pokorný @robinpokorny
What are some examples where I should manually change a key?
- The key is using key Tim Arney @timarney
#Forms
How can I build forms with React?
- Learn Raw React: Ridiculously Simple Forms James K Nelson @james_k_nelson
How can I validate form input?
- Elegant Form Validation Using React Jordan Schaenzle
#Patterns
- React Patterns @chantastic
- React.js in patterns Krasimir Tsonev
- Patterns For Style Composition In React Brent Jackson @jxnblk
- Make Your React Components Pretty Mark Brouch @markbrouch
#Learning
What do I need to know about React to get started?
- react-howto Pete Hunt
- Intro to React.JS Core Concepts Pascal Weiland @bitcrowd / Tony Alito
- React - Basic Theoretical Concepts
- Components, the war horses of React Osmel Mora @osmel_mora
#Gotchas
What are some React Gotchas?
- React Gotchas Dave Ceddia
#Refs
What are refs and are string refs are bad?
- 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
#PATENTS
What's all this stuff I hear about Facebook PATENTS clause?
- Some links to point people to when they misinterpret PATENTS clause or spread false claims Dan Abramov @dan_abramov
#Mixins
Why are Mixins Considered Harmful?
- Mixins Considered Harmful Dan Abramov @dan_abramov
#Internationalization
How should I handle internationalization?
- Internationalization in React Preethi Kasireddy
#Third Party Libraries
How do I use third party libraries?
- Integration with Third Party Libraries Rally Coding
#Performance
How can I make my app faster?
- 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
#Context
- 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)
#Animations
How do I animate things in React?
- 🔥 💯 [Animating In React](https://youtu.be/Fk--XUEorvc?t=2344 Sarah Drasner) @sarah_edo
- UI Animations with React — The Right Way Joe Davis
- Animations with ReactTransitionGroup Chang Wang @CheapSteak
Is there declarative api for animations?
How can I animate Page Transitions?
- React Page Transition Animations Huan Ji
What are some good repos to checkout for animation in React?
#SVG & React
How do I work with SVG's in React?
#Redux and Mobx
What's (Redux/Mobx)?
Do I need to use (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
How to scale React-Redux apps?
- About folder structure, styling, data fetching, etc. Max Stoiber @mxstbr
#Add to an existing app
How do I start adding React to an existing app?
- How to Sprinkle ReactJS into an Existing Web Application Andrew Del Prete @andrewdelprete
- Don't Rewrite, React! Ryan Florence
- Migrating Safely to React Jamis Charles
#CSS and React
What about styling things in React?
- Reusable React Component with Overridable Inline CSS Styles
- Inline Styles
- PANEL ON 'INLINE STYLES' @ShopTalkShow
- CSS in JS may not be the solution to all your problems Alan Souza
- CSS in JS + CSS Modules
- CSS in JS tech chat Kent C. Dodds & Sarah Drasner
Are there any tools available to convert 'css' to 'CSS in JS'?
- convert 'css' to 'CSS in JS' Kent C. Dodds
#Testing
- Testing React Applications Jack Franklin
- People seem to laugh at this but I think it’s actually pretty reasonable Dan Abramov @dan_abramov
#Conference Videos
#Contributing to React JS
Where can I learn about Contributing to React JS?
- Contributing to React JS Kent C. Dodds
#Universal React
- React on the Server for Beginners Luciano Mammino @loige
#Deep Dive
- Implementation Notes - How React Really Works Dan Abramov @dan_abramov
- Building React From Scratch Paul O'Shannessy @zpao
- Experimental - React Fiber Architecture Andrew Clark @acdlite
- Experimental - What's Next for React Andrew Clark @acdlite
- React Architecture – OSCON Christopher Chedeau @vjeux
- ReactJS: Under The Hood Boris Dinkevich @BorisDinkevich
#Video Courses
What are some good video resources/courses to learn React?
- https://reactforbeginners.com
- https://app.pluralsight.com/courses/react-redux-react-router-es6
- https://www.pluralsight.com/courses/react-flux-building-applications
- https://egghead.io/courses/react-fundamentals (they have a bunch)
- 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
#A11Y
What about accessibility?
- How to design for accessibility Note: not specific to React but a solid primer on the topic
How do I handle A11y in React
- Excerpt from React.js Conf 2015 - Hype! Ryan Florence
- Bringing the Web Back to the Blind by Ryan Florence Note: not specific to React
#Talks
- React to the Future - Slide Deck Elijah Manor @elijahmanor
- React Things - PDF Slides Jeff Winkler @winkler1
#Training
Where can I get React training?
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
#Books
Where can I find some good books about React?
- React Enlightenment Cody Lindley @codylindley
- Build your first real world React.js application Max Stoiber @mxstbr
- SurviveJS React
- Fullstack React