I would suggest PluralSight or EggHead videos.
ReactJS is easy to learn if you understand the basics.
- All React component has a render method which renders the elements to a virtual DOM.
- Changes to Props and State causes re-renders.
- Props are immutable and passed down by parent.
- State is mutable using setState.
- For sharing state between two components, there should be a common parent which holds that state.
- To avoid complicated data flows, use state management like Redux. This lifts state all the way to the top of the hierarchy in container components.
- HOC are functions which take a base component and return another component. For example, connect in react-redux.
- Sometimes, we need the DOM element of the component. For that use ReactDOM.findNode.
- Finally lifecycle methods for writing reusable components:
- componentDidMount for ajax calls / redux-thunk
- componentWillReceiveProps for setting state based on new props
- shouldComponentUpdate - to prevent render based on criteria
- componentWillUnmount - clear timers, handles, etc.