there is a concept in programing called "DRY" which means don't repeat yourself and this makes sense why do i need to start everything from scratch if i already have my tools?
from this point the idea of frameworks came.
if we have a frequently used items why don't we add them into a toolbox and just extract this tools whenever we need it.
sounds familiar ? yes this is quiet familiar to the concept of api
sure we can just use these items as is or use it as start point and then we add our customizations to it, this is called Framework.
but also this added much hassle to the developer comparing between different frameworks , which is better and what does every framework give me more than the other one.
and as usual every solution comes with its problems, these frameworks are evolving very quickly which is good but it also adds to the learning curve.
when new features are introduced new bugs are also introduced.
the good news here is that almost every framework uses the quiet same concepts and tries to adapt it by it's own way so you don't need to learn every framework released and only focus on the basics and higher concepts, then you will be able to move between the frameworks freely.
and as an advice don't follow frameworks trends as many promising frameworks are now dead, and only consider mature frameworks.