SSR adds a lot of complexity to our application. As it stands, with our application being rendered on the client, all the server does on the initial web request is render an empty HTML shell containing script references to our application's JavaScript files. Once the browser renders this empty shell, it starts to download the script files and executes them when they finish. At this point, our Vue application will be initialized, and will start to trigger the API requests that are necessary to fetch the data required to render the full HTML and CSS of the application. Once the application finishes rendering, it is immediately ready for the user to start interacting with it. This means that the application is both viewable and interactable at the exact same time, right at the end of the application startup cycle.
In comparison, when we start using SSR, the...