I wish there was more written here about how each approach of delivering JS/HTML and adding interactivity works on the server and on the client in techical terms. The nomenclature used for these quickly turns into a confusing mess.
https://www.patterns.dev/posts/rendering-patterns/
You can also check the illustration at the bottom of the page for a brief summary.