When it comes to large satellite networks, do each satellite work like routers in terrestrial networks, or is the 'routing' portion done on the earth side to pick correct satellites to jump to?
The answer is effectively 'both'. At this point, we don't have a definitive answer which applies to every single satellite network. Each satellite constellation is different, and there are a myriad of routing technologies which exist. Some are based around predetermination; basically a very large file is uploaded to every satellite and it simply reads from that file to know which satellite to talk to at each precise moment. Others use an ongoing simulation, but an earth-based ground station uploads the current and upcoming routing patterns to satellites. These require the smallest amount of computational power on the satellite to be dedicated to determining optimal links. The biggest problem with these approaches is that, when a link goes down, everything must be recalculated by the central coordinator. The satellites themselves will lose connectivity until the new links can be uploaded from the ground station. Other approaches have the satellites dynamically determine the most effective link.
In addition to the routing which is done via a typical wired router, in a large enough constellation, the access point is probably going to see more than one satellite at the same time, and either the satellite or the access point will need to determine which satellite to switch to. The access point also needs to know which satellite it will be talking to next, and be able to seamlessly hop to the next one. There is an excellent paper, A survey of routing techniques for satellite networks which provides a good overview of the competing approaches.