Tengo una publicación que hice en Reddit que detalla bastante mi problema:
https://www.reddit.com/r/learnjavascript/comments/sljr6r/spa_refreshpopstate_function_help/
Si todavía quiere que lo exponga aquí, entonces permítame explicarlo.
Tengo un sitio web que ayudo a administrar y estoy en el proceso de desarrollar un SPA. Tengo una configuración de datos de muestra en una tabla y actualmente la tengo funcionando para eliminar la tabla y completar el nombre del Pokémon seleccionado en una nueva etiqueta. Mi problema es que si un usuario alguna vez hace clic en los botones "Atrás/Adelante/Actualizar", no pasa nada o carga el 404 predeterminado para nuestro sitio. Que yo sepa, no puedo acceder al servidor en el que funciona SquareSpace, y no puedo asignar rutas a archivos html específicos debido a que trabajamos fuera de SS. A continuación se muestra el enlace a la página en la que estoy trabajando. Si necesito proporcionar más información puedo.
Los SPA tienen conflictos con las páginas distribuidas por el servidor. Como el front-end puede editar la URL (/páginas), una vez que se actualiza, el servidor toma esa URL y termina sin encontrar la página en el servidor.
Por lo general, redirigiría todo, desde la URL del servidor a su index.html para manejar la URL, pero dado que no puede acceder al back-end, diría que la mejor opción aquí es usar un enrutador hash para su SPA
Más aquí, explicación completa y detallada sobre la diferencia de BrowserRouter y HashRouter: https://itnext.io/why-using-hash-based-urls-in-your-react-spa-will-save-you-more-time-than -usted-piensa-a21e2c560879