Una Single-Page Application (SPA) es un tipo de aplicación web que ejecuta todo su contenido en una sola página.
Usualmente más recomendado para aplicaciones que son el negocio o el fundamento del proyecto y que de su uso se generarán los ingresos del mismo, ejemplo NETFLIX, GOOGLE DRIVE, TRELLO.
Funciona cargando el contenido HTML, CSS y JavaScript por completo al abrir la web. Al ir pasando de una sección a otra, solo necesita cargar el contenido nuevo de forma dinámica si este lo requiere, pero no hace falta cargar la página por completo. Esto mejora los tiempos de respuesta y agiliza mucho la navegación, favoreciendo así a la experiencia de usuario.
Que sea una única página no significa que tenga un scroll eterno o que el contenido no esté estructurado. La realidad es que, dentro de esa propia página, podemos obtener distintas vistas para cada apartado de la web. Estas serían equivalentes a las diferentes páginas de las que se compone una MPA (Multi Page Application).
Respecto a las URLs del navegador, existe la posibilidad de que se vayan modificando en la barra de direcciones a medida que intercambiamos las vistas. Como hemos dicho, no se cambia la página, pero sí el contenido. Otorgar una URL propia a cada pantalla es muy útil de cara a aspectos como la navegabilidad (por ejemplo, para utilizar el botón de retroceder o avanzar una página en el navegador y para que constate en el historial) o para compartirla o guardarla en marcadores, por ejemplo. Con su URL única, podremos acceder directamente a la pantalla a la que hace referencia, sin necesidad de realizar el recorrido desde la home.
Se necesita el desarrollo de un BACKEND que sostendrá la información necesaria que queremos mostrar en nuestra aplicación, esto divide en 2 grandes grupos el trabajo para sostener una aplicación por lo que el mantenimiento del mismo se encarece, por eso se orientan a proyectos donde el negocio ES la aplicación.