¿Cuál es la forma más recomendada de crear aplicaciones de una sola página sin URL hash?

las URL hash están ahí para cuidar el botón de historial del navegador.

AFAIK, en todos los marcos, puede decidir no tener las URL hash y llamar a las funciones directamente. Pero los usuarios, que tienen muchos años de experiencia con los navegadores, hacen clic en el botón Atrás del navegador para ir al estado anterior en su aplicación y el navegador los llevará a la página anterior que conoce.

Por lo tanto, es importante obtener un lugar en el objeto Historial del navegador que brinde la funcionalidad del botón de avance y retroceso del navegador. La forma más sencilla de obtener un lugar en el objeto de historial es llamar a una nueva URL ya que el navegador está programado para mantener la pila de historial. Pero si cambia la URL, el navegador intentará recuperarlo del servidor y desaparecerá todo el punto de SPA. Si solo cambia la parte de la URL que viene después del hash (#), el navegador cree que está en algún lugar de la misma página e intenta encontrarla, pero no carga la página nuevamente. El marco SPA utiliza este comportamiento del navegador para cambiar la URL sin volver a cargar la página.

Otra forma de ingresar al objeto de historial es cambiar el objeto de historial expuesto por el navegador en su código usando Javascript. Sin embargo, está replicando algo que ya se le proporcionó.

Puede intentar usar una biblioteca js, es decir. Página

eso hará el trabajo por ti.

Para desarrollar SPA sin URL hash, necesita un enrutador (en JS) y aprovechar la API de historial HTML5.

Para esto, puede usar la página de una pequeña biblioteca JS que está inspirada en express y utiliza la API de historial de HTML5 bajo el capó.

¡Espero que esto ayude!

Puede establecer html5mode true y un baseurl.

Busque sobre estos dos y encontrará ayuda.