A framework is something you use in your code that does much of the routine work for you (most often, updating the DOM). A library is a set of features you can use in your code, but it doesn't necessarily replace or upgrade too many things.
Using a framework is so much easier than using vanilla JS. It allows you to abstract parts of code that you don't need to worry about, like dom manipulation and state handling. Using a library allows you to use less headspace for things you don't need to worry about, and instead focus on what's actually important.
A component is a block of code that has something to render. It can also contain a state, data, props, or really anything else - it's just a class that has some extra features. Components are useful because they allow us