Lifting state up in a React App is to put the state required by multiple components at the closest common ancestor, allowing all of the components to reflect the required state. Some benefits of this are: Using less code by being able to pass down the same state to multiple components and takes less work to troubleshoot bugs.
Conditional Rendering is the displaying of components on your React app based on whether or not conditions are met. You can implement it into a component like this: if (condition) { show this component } else { show other component }
The main principles behind Thinking in React are “Break the UI into a component heirarchy”, “Build a static version in React”, “Find the minimal but complete representation of UI state”, “Identify where your state should live” and “Add inverse data flow”. These principles create a check list/template of efficiently building a react app.