Правильно ли я делаю маршрутизацию клиента?

есть точка входа index.html, который запускает app.js . Он, в свою очередь, проверяет авторизован ли человек, и в зависимости от ответа перенаправляет на страницу либо на страницу авторизации, либо в профиль.

index.html:

<!doctype html>
<html lang="ru">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>URTK Airport Panel</title>
    <link rel="stylesheet" href="src/index.css">
    <script type="module" src="src/app.js" defer></script>
  </head>
  <body>
    <div id="root"></div>
  </body>
</html>

app.js:

import axios from 'axios';

// Функция для загрузки страницы с помощью Axios
async function loadPageWithAxios(href) {
    try {
        const response = await axios.get(href);
        return response.data;
    } catch (error) {
        console.error('Ошибка при загрузке страницы:', error);
        throw error;
    }
}

function loadPage(url) { 
    location.replace(url); 
}

import AuthPage from './pages/AuthPage/AuthPage.html';
import Page1 from './pages/AuthPage/test.html'
 


function renderApp() {
    const isAuthorized = !!localStorage.getItem('token') &&
        !!localStorage.getItem('fullName') &&
        !!localStorage.getItem('admin-type');

    // Получаем корневой элемент для рендеринга
    const rootElement = document.getElementById('root');

    // Определяем маршрутизацию в зависимости от авторизации
    let routing;
    if (isAuthorized) {
        loadPage(Page1)
        // loadPageWithAxios('src/test.html')
        //     .then(html => {
        //         rootElement.innerHTML = html;
        //     })
        //     .catch(error => {
        //         console.error('Ошибка при загрузке страницы:', error);
        //     });
    } else {
        loadPage(AuthPage);
        // loadPageWithAxios(AuthPage)
        //     .then(html => {
        //         rootElement.innerHTML = html;
        //     })
        //     .catch(error => {
        //         console.error('Ошибка при загрузке страницы:', error);
        //     });
    }
}

window.onload = renderApp;

Раньше я использовал функцию loadPageWithAxios(закомменченные части) и тогда не работали другие js скрипты, прописанные на соответствующих страницах(то есть, например, открывалась страница AuthPage и ни одна кнопка не работала). Потом я сделал функцию loadPage(url) и все стало работать.

Скажите адекватно ли это для фронтенда, законно ли, безопасно ли? Я еще учусь и в этом проекте необходимо сделать клиент-серверное приложение, используя максимум html, css, JavaScript, jQuery; и вопрос стоит в корректной маршрутизации на стороне клиента


Ответы (0 шт):