Up until this point, the components we've created have been stateless. They have properties (aka props) that are passed in from their parent, but nothing changes about them once the components come alive. Your properties are considered immutable once they have been set. For many interactive scenarios, you don't want that. You want to be able to change aspects of your components as a result of some user interaction (or some data getting returned from a server or a billion other things!)
Every React component gets a few arguments passed in during creation. The props argument contains the things you receive via this.props. The context argument is something you’ll rarely need to use…except when using Redux and related libraries that help manage state.