context :provides a way to pass data through the component tree without having to pass props down manually at every level.
useContext(): is used to create common data that can be accessed throughout the component hierarchy without passing the props down manually to each level.
static context :A static method or, block belongs to the class and these will be loaded into the memory along with the class. You can invoke static methods without creating an object. used with class component when your app has one context